DCL
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
查询用户
1、查询用户
代码语言:javascript复制select * from mysql.user;
2、创建用户
代码语言:javascript复制CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
3、修改用户密码
代码语言:javascript复制ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
4、删除用户
代码语言:javascript复制DROP USER '用户名'@'主机名' ;
案例
A. 创建用户itcast, 只能够在当前主机localhost访问, 密码123456;
代码语言:javascript复制create user 'itcast'@'localhost' identified by '123456';
B. 创建用户heima, 可以在任意主机访问该数据库, 密码123456;
代码语言:javascript复制create user 'heima'@'%' identified by '123456';
C. 修改用户heima的访问密码为1234;
代码语言:javascript复制alter user 'heima'@'%' identified with mysql_native_password by '1234';
D. 删除 itcast@localhost 用户
代码语言:javascript复制drop user 'itcast'@'localhost';
权限控制
权限 | 说明 |
---|---|
ALL, ALL PRIVILEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库/表/视图 |
CREATE | 创建数据库/表 |
1、查询权限
代码语言:javascript复制SHOW GRANTS FOR '用户名'@'主机名' ;
2、授予权限
代码语言:javascript复制GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
3、撤销权限
代码语言:javascript复制REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
案例
A. 查询 'heima'@'%' 用户的权限
代码语言:javascript复制show grants for 'heima'@'%';
B. 授予 'heima'@'%' 用户itcast数据库所有表的所有操作权限
代码语言:javascript复制grant all on itcast.* to 'heima'@'%';
C. 撤销 'heima'@'%' 用户的itcast数据库的所有权限
代码语言:javascript复制revoke all on itcast.* from 'heima'@'%';