一、DCL介绍
1.定义
即: (1)控制数据库主要有哪些用户可以访问;
(2)控制每一个用户具有什么用户权限
二、DCL——管理用户
1.查询用户
注:用户信息在数据库中的user表中,如下:(只有root用户是我们用的,另外三个暂时不用)
(1)Host是主机;
(2)localhost表示只能在本电脑上访问,不能远程访问。
2.创建用户
注:(1)‘主机名’表示指定在那个电脑上可以访问;
(2)localhost表示在当前电脑上访问,%表示在所有电脑上都可以访问。
3.修改用户密码
4.删除用户
5.代码演示
# # --------------------------管理用户------------------------
# 1.查询用户
use mysql;
select * from user;
# 2.创建用户itcast,只能在当前主机localhost访问,密码123456;
create user 'itcast'@'localhost' identified by '123456';
# itcast的权限:只能访问mysql数据库,因为:目前只是创建了这个用户,并未给这个用户分配任何权限。
# 3.创建用户heima,可以在任意主机上访问该数据库(只需将localhost改为通配符%即可),密码123456;
create user 'heima'@'%' identified by '123456';
# 4.修改用户heima的访问密码为1234;
alter user 'heima'@'%' identified with mysql_native_password by '1234';
# 5.删除itcast@localhost用户
drop user 'itcast'@'localhost';
创建用户,创建成功
删除成功
注:
三、DCL——权限控制
1.查询权限
2.授予权限
3.撤销权限
4.代码演示
# --------------------------权限控制------------------------
# 1.查询权限
show grants for 'heima'@'%';
# 输出内容中GRANT表示:没有权限
# 2.授予所有权限
grant all on mysql.* to 'heima'@'%';
# ALL PRIVILEGES表示授予了所有权限
# 3.撤销所有权限
revoke all on mysql.* from 'heima'@'%';
查询heima用户的权限,输出内容如下:
注:USAGE表示没有权限
授予权限:当授予所有权限时,权限列表用all表示
ALL PRIVILEGES表示授予了所有权限。
撤销所有权限,还是用all