什么是dcl
(Data Control Lanuage):数据控制语言,在sql语句中,对数据库中的表进行权限的相关控制,数据库做控制,存储过程进行过程,定义函数控制,表的操作控制。。。权限控制
两个关键字
grant\revoke
默认的用户
root,超级管理权限
创建用户
create user 'username'@'host' identified by 'password';
#username:表示创建的普通数据库用户的名称
#host:指定该用户在哪个主机上可以在哪个主机上可以登录访问当前数据
#*localhost:所创建的普通用户,只能在本机上访问数据库
#* %:创建出来的用户可以在任意主机上访问目标数据
password:创建的用户访问数据库时对应的密码,可以为空(一般不会这么做,除非是测试用户)
用户权限的设置
创建好的用户(访问数据库的用户),可以添加数据库的访问权限
语法
grant 权限 on 数据库名.表名 to '用户名';
grant 权限1,权限2 on 数据库名.表名 to '用户名'@'主机名称';
权限:create、alert、select、insert、update、delete等。如果要最大:all;
on:表示当前的权限作用在哪个库的哪个表上。
to:表示将以上定义的权限授予哪个用户
GRANT SELECT ON my_db.goods TO 'admin01'@'localhost';
GRANT ALL ON my_db.goods TO 'admin02'@'%';
此时建立admin01 新连接时,只有my_db.goods表,且只能进行select操作
查询权限
语法:
show grants for 'root'@'localhost';
删除用户
如果在删除对应的数据库用户名,需要保证【主机名称】和创建用户时分配的主机名称保持一致。
drop user 'admin01'@'localhost';