DCL介绍
DCL是SQL数据控制的部分, 用途是管理数据库用户, 控制数据库访问权限.
也就是说, 不同的用户能否登录数据库, 有的用户只能在本地登录, 有的不仅可以在本地登录, 也可以在网络中的任意一个ip地址中登录. 不同的用户登录数据库以后, 可以操作的数据库是不一样的, 就算能操作, 能操作的范围也是有限的.
这就是DCL的作用.
管理用户
查询用户
use mysql;
select * from user;
创建用户
create user '用户名'@'主机名' identified by '密码';
修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
删除用户
drop user '用户名'@'主机名';
在mysql数据库当中, 用户的信息, 用户所具有的权限的信息, 全部都存放在系统数据库(mysql)的user表中.
查看mysql的user表
权限管理
常用权限种类
mysql中定义了好多种权限, 但是常用的也就是这几种:
权限 | 说明 |
---|---|
All, All privileges | 所有权限 |
select | 查询数据 |
insert | 插入数据 |
update | 修改数据 |
delete | 删除数据 |
alter | 修改表 |
drop | 删除数据库/表/视图 |
create | 创建数据库/表 |
权限控制
查询权限
show grants for '用户名'@'主机名';
授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
注意点
多个权限之间, 使用,
分隔;
授权时, 数据库名和表名都可以使用*
代替, 进行通配, 代表所有.