文章目录
- DCL
- 管理用户
- 示例代码
 
- 权限管理
- 示例代码
- 用户权限
 
 
 
DCL
- 概述:DCL,数据库控制语言,用来管理用户和给用户授予权限的
管理用户
-  添加用户 CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
-  删除用户 DROP USER '用户名'@'主机名';
-  修改用户密码 SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
-  查询用户 - 首先切换到 MySQL 数据库
 USE mysql;- 查询 user 表
 SELECT * FROM USER;
-  通配符 - % 表示可以在任意主机使用用户登录数据库
 
示例代码
-- 添加用户 lisi , 密码 lisi
CREATE USER 'lisi'@'localhost' IDENTIFIED BY 'lisi';-- 查询用户
USE mysql;		-- 首先切换到 mysql 数据库
SELECT * FROM USER;	-- 查询当前数据库用户表,可看到 lisi 创建成功-- 修改用户密码,在修改前,可通过命令框形式用 lisi 用户登录MySQL
SET PASSWORD FOR 'lisi'@'localhost' = PASSWORD('123');-- 删除 lisi 用户
DROP USER 'lisi'@'localhost';-- 查询用户
USE mysql;		-- 首先切换到 mysql 数据库
SELECT * FROM USER;	-- 查询当前数据库用户表,可看到 lisi 删除成功-- 添加用户 heng ,密码 heng 在所有主机使用
CREATE USER 'heng'@'%' IDENTIFIED BY 'heng';
权限管理
-  查询权限 -- 显示此主机此用户的权限 SHOW GRANTS FOR '用户名'@'主机名';
-  授予权限 -- 授予权限 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
-  撤销权限 -- 撤销权限 REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
示例代码
-- 显示 root 用户权限
SHOW GRANTS FOR 'root'@'localhost';-- 显示 lisi 用户权限
SHOW GRANTS FOR 'lisi'@'localhost';-- 显示 heng 用户权限
SHOW GRANTS FOR 'heng'@'%';-- 授予 lisi 更新权限
GRANT UPDATE ON *.* TO 'lisi'@'localhost';SHOW GRANTS FOR 'lisi'@'localhost';-- 授予 heng 所有权限
GRANT ALL ON *.* TO 'heng'@'%';SHOW GRANTS FOR 'heng'@'%';-- 撤销 heng 用户所有权限
REVOKE ALL ON *.* FROM 'heng'@'%';SHOW GRANTS FOR 'heng'@'%';-- 撤销 lisi 用户更新权限
REVOKE UPDATE ON *.* FROM 'lisi'@'localhost';
SHOW GRANTS FOR 'lisi'@'localhost';-- 删除 lisi heng 用户
DROP USER 'lisi'@'localhost';
DROP USER 'heng'@'%';SELECT * FROM USER;
这里 *.* 代表,所有数据库的所有数据表
用户权限
| 权限关键字 | 权限的作用 | 
|---|---|
| SELECT | 允许用户查询数据库中的数据 | 
| INSERT | 允许用户向数据库中插入新的数据 | 
| UPDATE | 允许用户修改数据库中现有的数据 | 
| DELETE | 允许用户从数据库中删除数据 | 
| CREATE | 允许用户创建新的数据库、表、索引等对象 | 
| DROP | 允许用户删除数据库、表、索引等对象 | 
| GRANT OPTION | 允许用户将自己拥有的权限授予其他用户 | 
| REFERENCES | 允许用户在表中创建外键约束 | 
| INDEX | 允许用户创建索引 | 
| ALTER | 允许用户修改表的结构 | 
| CREATE TEMPORARY TABLES | 允许用户创建临时表 | 
| LOCK TABLES | 允许用户锁定表 | 
| EXECUTE | 允许用户执行存储过程 | 
| CREATE VIEW | 允许用户创建视图 | 
| SHOW VIEW | 允许用户查看视图的定义 | 
| CREATE ROUTINE | 允许用户创建存储过程和函数 | 
| ALTER ROUTINE | 允许用户修改存储过程和函数 | 
| EVENT | 允许用户创建、修改、删除事件 | 
| TRIGGER | 允许用户创建触发器 |