DCL-介绍
DCL数据控制语言,用来管理数据库和用户、控制数据库的访问权限
DCL-管理用户
查询数据库的用户
# 数据库的用户存储在mysql的表user中 use mysql; select * from user;
创建用户
create user '用户名'@'主机名' identified by '密码';
定位MySQL的用户需要用主机地址和用户名共同进行定位
# 创建用户itcast,只能在当前的主机localhost访问,密码123456 create user 'iscast'@'localhost' identified by '123456'; # 创建用户heima可以在任意主机访问该数据库,密码123456 create user 'heima'@'%' identified by '123456';
新创建的用户无权限,需要进行分配
主机名可以使用%通配,在任何主机都可以访问数据库
DCL主要是DBA使用
修改用户密码
# 修改用户的密码 alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
# 修改用户heima的访问密码为1234 alter user 'heima'@'%' identified with mysql_native_password by '1234';
删除用户
# 删除用户 drop user '用户名'@'主机名';
# 删除itcast用户 drop user 'iscast'@'localhost';
DCL-权限控制
其他权限可以参考官方文档
查询用户的权限
show grants for '用户名'@'主机名'; show grants for 'heima'@'%';
授予用户权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'; #给heima用户mydatabase的所有权限 grant all on mydatabase.* to 'heima'@'%';
撤销权限
# 撤销权限 revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'; revoke all on mydatabase.* from 'heima'@'%';
多个权限之间使用逗号分割
授权时数据库名和表名可以使用 * 进行通配,代表所有
grant all on *.* to 'heima'@'%';