一、简介
DCL(Data Control Language):数据控制语言,用来创建数据库用户、控制数据库的访问权限
DCL主要包含两方面的操作,
- 用户管理(控制哪些用户能访问数据库)
- 权限控制(控制用户能访问哪些数据库)
二、用户管理
1、查询用户
这个操作用来查看数据库中含有哪些用户,以及用户具有的权限。
使用两条命令进行查询:
use mysql;-- 因为用户是管理在MySql数据库中的user表中,所以首先要进入到MySql数据库中
select * from user;-- 其次查询user表
2、创建用户
create user ‘用户名’@‘主机名’ identified by '密码';
3、修改用户密码
alter user ‘用户名’@‘主机名’ identified with mysql_native_password by '新密码';
4、删除用户
drop user '用户名'@‘主机名’;
举例:
-- 创建用户ItHigh,只能够在当前主机localhost访问,密码123456;
CREATE USER 'ItHigh'@'LOCALHOST' IDENTIFIED BY '123456';-- 创建用户‘yyds’,可以在任意主机访问该数据库,密码123456;
CREATE USER 'YYDS'@'%' IDENTIFIED BY '123456';-- 修改用户ItHigh的访问密码1234
ALTER USER 'ItHigh'@'LOCALHOST' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '1234';-- 删除itcast@localhost用户
DROP USER 'ItHigh'@'LOCALHOST';
三、权限控制
常用的几种权限:
权限 | 说明 |
ALL/ALL PRIVILEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库/表/视图 |
CREATE | 创建数据库/表 |
1、查询权限
SHOW GRANTS FOR '用户名'@'主机';
2、授权权限
GRANT 权限列表 ON 数据库名 表名 TO '用户名'@'主机名';
3、撤销权限
REVOKE 权限列表 ON 数据库名 表名 FROM '用户名'@'主机名';
-- 查询权限
SHOW GRANTS FOR 'YYDS'@'%';
-- 授予权限
GRANT ALL ON yyds.* TO 'YYDS'@'%';
GRANT ALL ON *.* TO 'YYDS'@'%'
-- 撤销权限
REVOKE ALL ON employee.*from 'YYDS'@'%';
注意:
多个权限之间用逗号分隔。
授权时,数据库名和表名可以使用*进行通配,代表所有。