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.****.net/fafa211/article/details/2249217
总结: