DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
控制的内容:哪些用户可以访问该数据库和能访问数据库的用户可以访问哪些数据。
用户管理的语句
- 查询用户
USE mysql;
SELECT * FROM User; - 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; - 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码'; - 删除用户
DROP USER '用户名'@'主机名';
示例:
sql
-- 创建用户
create user 'tester1'@'localhost' identified by '123456';
-- 创建用户,可以再任意主机访问该数据库
create user 'tester2'@'%' identified by '123456';
-- 修改用户密码
alter user 'tester1'@'localhost' identified with mysql_native_password by '1234';
-- 删除用户
drop user 'tester2'@'%';
权限控制
常用权限:

- 查询权限
SHOW GRANTS FOR '用户名'@'主机名'; - 授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'; - 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
示例:
sql
-- 权限控制
-- 查询权限
show grants for 'tester1'@'localhost'; -- GRANT USAGE ON *.* TO `tester1`@`localhost`表示仅仅能登录并连接
-- 授权
grant all on sql1.* to 'tester1'@'localhost';
-- 撤销权限
revoke all on sql1.* from 'tester1'@'localhost';