目录
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访 问权限。
管理用户
1). 查询用户
select * from mysql.user;
查询结果如下
其中 Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以 远程访问的。 User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一 个用户。
2). 创建用户
create user '用户名'@'主机名' IDENTIFIED BY '密码';
#例句
create user 'lisi'@'localhost' identified by '123456';
3). 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
4). 删除用户
drop user '用户名'@'主机名';
注意事项:
• 在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户。
• 这类sql语句一般是数据库管理员使用
案例:
A. 创建用户lisi, 只能够在当前主机localhost访问, 密码123456;
create user 'lisi'@'localhost' identified by '123456';
B. 创建用户zhangsan, 可以在任意主机访问该数据库, 密码123456;
create user 'zhangsan'@'%' identified by '123456';
C. 修改用户zhangsan的访问密码为1234;
alter user 'zhangsan'@'%' identified with mysql_native_password by '1234';
D. 删除 lisi@localhost 用户
drop user 'lisi'@'localhost';
权限控制
通过对不同用户的访问数据库权限的设置,可以防止删库跑路!
1). 查询权限
show grants for 'zhangsan'@'localhost';
2). 授予权限
grant 权限 on 数据库名.表名 to '用户名'@'主机名';
3). 撤销权限
revoke 权限 on 数据库名.表名 from '用户名'@'主机名';
注意事项:
• 多个权限之间,使用逗号分隔
• 授权时, 数据库名和表名可以使用 * 进行通配,代表所有。