DCL用来管理数据库用户,控制数据库的访问权限
1.管理用户
1.1查询用户
use mysql;
select * from user;
#用户信息都存放在系统数据库mysql的user表中
在user表中,一个用户是由用户名和主机名共同决定的,上图中的host一栏就是用户的主机名,localhost代表该用户只能在本机访问数据库服务器,不可远程访问服务器。
1.2创建用户
create user '用户名'@'主机名' identified by '密码';
#语句中的 主机名 代表用户能够以何种方式访问服务器
主机名设置为localhost,代表该用户只能在本机访问数据库服务器,不可远程访问服务器。
主机名设置为%,代表该用户可以在任意端访问服务器。
1.3修改用户密码
alter user '用户名'@'主机名' identified with mysql_password by '新密码';
1.4删除用户
drop user '用户名'@'主机名';
2.权限控制
mysql中用户的权限有很多种,但常用有以下几种
all | 所有权限 |
select | 查询数据 |
insert | 插入数据 |
update | 修改数据 |
delete | 删除数据 |
alter | 修改表 |
drop | 删除数据库/表/视图 |
create | 创建数据库/表 |
show grants for '用户名'@'主机名';
#查询权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
#赋予权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
#撤销权限
*语句中的权限为多个时,以逗号隔开
*语句中的数据库名.表名可以使用数据库名.*,代表该数据库中所有表;也可以使用*.*代表所有数据库中所有表。