Mysql用户权限管理:Grank和Revoke

注:所有的下划线+斜体语句都是非必须语句

所有的大括号和"/"只是为了区分,并不属于sql语句


SQL语言的用户与权利:

SQL语言包含了DDL、DML和DCL,数据库安全性控制是属于DCL范畴

关系级别(不同用户)→ 账户级别(程序员用户)→ 超级用户(DBA)

按等级划分:

  • 等级1:只读
  • 等级2:更新(Insert、Update、delete等对元组的操作)
  • 等级3:创建(Create、Alter、Drop即创建表空间、模式、索引、视图等)

级别高的权利自动包含级别低的权利,在有些DBMS中将级别3的权利称为账户级别的权利,而将级别1和2称为关系级别的权利


Grank/Revoke权限分配:

mysql语句:

Grank {all privileges / 权限1, 权限2…} on {数据库名称 / *.表名称 / *}

to 用户名@用户地址 with grant option identified by 连接口令

文字描述:

  • all privileges表示给予所有权限
  • 数据库名称或者表名*替代,表示赋予用户操作服务器上所有数据库所有表对应的权限
  • 用户地址可以是localhost,也可以是ip地址、机器名字、域名,可以用'%'表示任意地址
  • 连接口令可以理解为"昵称",可以是任意的字符串例如"12345555",但不能为空
  • Revoke表示撤销权限,和Grank正好相反,使用方法一样,唯一的区别是用from代替to
  • 用户被授予了某个权限,那么默认情况下,该用户是不能把这个权限授予给其他人的,可以用with grant option允许授权,当一个用户的权利被收回时,通过其传播给其他用户的权利也将被收回,不过若一个用户从多个用户处获得了授权,则当其中某一个用户收回授权时,该用户可能仍保有权利

查看权限语句:

show grank for 用户名@用户地址

如果没有后面的for语句则默认查看自己的权限

参考来自:https://blog.csdn.net/fafa211/article/details/2249217


总结:




猜你喜欢

转载自blog.csdn.net/Jaihk662/article/details/80227204
今日推荐