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'@'%';

注意:

  • 多个权限之间,使用逗号分隔
  • 授权时,数据库名和表情可以使用*进行通配,代表所有