DCL-数据控制语言(Data Controller Language),在sql语句中,对数据库中的表进行权限的相关控制、存储过程进行过程、定义函数控制、表的操作......等操作权限。
两个关键字:grant | revoke关键字。
默认用户root,超级管理权限。
语法格式
create user 'username' @'host' identified by 'password'
username:表示创建的普通数据库用户(这里的用户指的是mysql用户)的名称
host:指定该用户在那个主机上可以登陆访问当前的数据
①localhost:创建出来的用户只能访问本机上访问数据
②%:创建出来的用户可以在任意主机上访问目标数据
password:创建的用户访问数据库时对应的密码,可以为空(为空一般为测试用户)
预备数据库表
create user 'admin01'@'localhost' identified by '123456';
CREATE USER 'admin02'@'%' IDENTIFIED BY '123456';
那么我们在哪里找到这些库呢
只需在mysql库下执行
SELECT * FROM mysql.user;
用户权限
创建好的用户(访问数据库的用户),可以添加数据库的访问权限
语法结构
grant 权限1,权限2... on 数据库.表名 to '用户名'@'主机名称'
语法解析
①权限:create、alter、select、insert、update、delete等。(如果要把一个表的访问权限设置最u大:all)
②on:表示当前的权限作用在哪个库的哪个表上
③to:表示将以上定义的权限授予哪个用户
关于权限列表查询可以看另一篇文章
https://blog.csdn/qq_55774938/article/details/122427537?utm_source=app&app_version=5.3.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
示例:
我们现在要做的是:admin01用户分配goods表的权限是查询操作
GRANT SELECT ON my_db.goods TO 'admin01'@'localhost';
第二个案例
要求:admin02用户分配所有权限
GRANT ALL ON my_db.goods TO 'admin02'@'%';
当我们以admin01登录数据库时,我们将会发现对当前表只能进行查询操作。(在当前数据库中因为我们只对goods表进行的权限的赋予,所以在之前root用户下的其他表都看不见)
查看权限
语法结构
show grants for '用户名'@'主机值';
语法解析
localhost:表示数据库的名称(IP地址)
删除用户
语法
drop user '用户名'@'主机名'
实例:
drop user 'admin01'@'localhost'
drop user 'admin02'@'%'
注意:如果在删除对应的数据库名,需要保证【主机名称】和创建用户是分配的主机名称保持一致
‘localhost’和‘%’
更多推荐
DCL的基本用法
发布评论