avatar

数据库操作-DCL

DCL

DCL(Data Control Language),数据库控制语言。

主要用途:对数据库访问权限进行控制的指令。

操纵命令:GRANT、REVOKE

GRANT:对用户进行赋权。

REVOKE:对用户权限进行回收。

用户管理

MYSQL8.0后版本不支持grant语句直接创建用户,因此需要先创建用户,再进行赋权。

创建用户

1
2
3
4
CREATE USER 'username'@'hostname' IDENTIFIED BY '密码';

案例:
create user 'csg1' identified by '123';

image-20200614195339691

用Create创建的用户仅有系统默认权限usage,无其他权限。

删除用户

1
2
3
4
DROP USER 'username'@'hostname';

案例:
drop user csg1;

image-20200614195455547

权限管理

赋权

1
2
3
4
5
GRANT priviledge_name[(list_name1,list?_name2)] ON dbname.table_name FROM 'username'@'hostname';

案例:
对账号'csg1'添加数据库'mysqlpractice'所有表的'select'权限。
grant select on mysqlpractice.* to csg1;

image-20200614201705116

1
2
3
4
案例:
对全库全表赋权所有权限。

grant all on *.* to dba@localhost;

查看权限

1
2
3
4
5
查看指定账号权限:
SHOW GRANTS FOR 'username'@'hostname';

查看当前用户自身权限:
SHOW GRANTS;

回收权限

1
2
3
4
REVOKE priviledge_name[(list_name1,list?_name2)] FROM dbname.table_name FROM 'username'@'hostname';

案例:
revoke select on mysqlpractice.* from csg1;

image-20200614202521110

文章作者: JackFeng
文章链接: https://minesql.github.io/posts/f8d580eb.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SQL社区
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论