目录
1,DCL介绍
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户,控制数据库的访问 权限。
2,DCL操作语句及功能实现
(1)DCL-管理用户
--查询用户
USE mysql;
SELECT * FROM USER;
--创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
--例:创建用户cast,只能够在当前主机localhost访问,密码111111;
create user 'cast'@'localhost' identified by '111111';
--例:创建用户super,可以在任意主机访问数据库,密码111111;
create user 'super'@'%' identified by '111111';
--修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
--例:修改用户super的访问密码为1234;
alter user 'super'@'%' identified with mysql_native_password by '1234';
--删除用户
DROP USER '用户名'@'主机名';
--例:删除cast@localhost用户
drop user 'cast'@'localhost';
注:①主机名可以使用%通配。
②这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用
(2)DCL-权限控制
MySQL中定义了很多种权限,但是常用的就以下几种,
权限 | 说明 |
ALL,ALL PRIVLEGES | 所有权限 |
SELECT | 查询权限 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库/表/视图 |
CREATE | 创建数据库/表 |
--查看权限
SHOW GRANT FOR '用户名'@'主机名';
--例:查看用户super拥有的所有权限
show grants for 'super'@'%';
--授予权限
GRANT 权限列表 ON 数据库.表名 TO '用户名'@'主机名';
--授予用户super给用户cast的所有表的所有权限
grant all on cast.* to 'super'@'%';
--撤销权限
REVOKE 权限列表 ON 数据库名. 表名 FROM '用户名'@'主机名';
--例:从用户super撤销cast的所有权限
revoke all on cast.* from 'super'@'%';
注:
多个权限之间,使用逗号分隔。
授权时,数据库名和表名可以使用*进行通配,代表所有。