1. 介绍
DCL英文全称是Data Control Language(数据控制语言), 用来管理数据库 用户、控制数据库的访问权限。
2. DCL 管理用户
-- 1. 查询用户 USE mysql; SELECT * FROM user; -- 2. 创建用户 CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; -- 案例: -- 创建用户 itcast, 只能够在当前主机localhost访问,密码123456 CREATE USER 'itcast'@'localhost' IDENTIFIED BY '123456'; -- 创建用户 heima, 可以在任意主机访问该数据库,密码123456; CREATE USER 'heima'@'%' IDENTIFIED BY '123456'; -- 3. 修改用户密码 ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码'; -- 案例: -- 修改用户 heima 的访问密码为1234 ALTER USER 'heima'@'%' IDENTIFIED WITH mysql_native_password BY '1234'; -- 4. 删除用户 DROP USER '用户名'@'主机名' -- 案例: -- 删除itcast@localhost用户
注意:
- 主机名可以使用%通配
- 这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)操作
3. DCL权限控制
-- 1. 查询权限 SHOW GRANTS FOR '用户名'@'主机名'; -- 示例 SHOW GRANTS FOR 'heima'@'%'; -- 2. 授予权限 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'; -- 示例 GRANT ALL ON itcast.* TO 'heima'@'%'; -- 3. 撤销权限 REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名'; -- 示例 REVOKE ALL ON itcast.* FROM 'heima'@'%';
注意:
- 多个权限之间,使用逗号分隔
- 授权时,数据库名和表情可以使用*进行通配,代表所有