DCL的基本用法

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.net/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’和‘%’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值