(十四)SQL | 数据控制语言DCL

本文介绍了DCL(DataControlLanguage)在MySQL数据库中的应用,包括创建、修改和删除用户,以及权限的授予和撤销。例如,创建用户mojing并设置其在localhost的访问权限,然后授予和撤销特定数据库的查询、更新和修改权限。这些操作对于确保数据库的安全访问至关重要。
摘要由CSDN通过智能技术生成

啥是DCL?DCL用来管理数据库用户、控制数据库的访问权限。比如,我们之前下载MySQL时,设定的用户名root和密码1234,这样可以保证能够正常使用数据库。


DQL

01  管理用户

-- 1. 查询用户
USE mysql;  -- 所用的数据库就是mysql
SELECT * FROM user;  -- 所用的表就是user

-- 2. 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

-- 3. 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';  -- mysql_native_password 不变

-- 4. 删除用户
DROP USER '用户名'@'主机名';

举个栗子

  1. 创建用户mojing,只能在当前主机localhost访问,密码1234
  2. 创建用户lvmealn,可以在任意主机访问该数据库,密码1234
  3. 修改用户mojing的访问密码为4321
  4. 删除mojing@localhost用户和lvmealn@%用户
use mysql;
select * from user;

-- 1. 创建用户mojing,只能在当前主机localhost访问,密码1234
create user 'mojing'@'localhost' identified by '1234';

-- 2. 创建用户lvmealn,可以在任意主机访问该数据库,密码1234
create user 'lvmealn'@'%' identified by '1234';

-- 3. 修改用户mojing的访问密码为4321
alter user 'mojing'@'localhost' identified with mysql_native_password by '4321';

-- 4. 删除mojing@localhost用户和lvmealn@%用户
drop user 'mojing'@'localhost', 'lvmealn'@'%';

 win+R,输入cmd确定,以mojing启动mysql:可以看到mojing仅能访问当前主机的数据库。

 

02  权限控制 

MySQL中常用的权限

权限

说明

ALL, ALL PRIVILEGES

所有权限

SELECT

查询数据

INSERT

插入数据

UPDATE

修改数据

ALTER

修改表

DROP

删除数据库/表/视图

CREATE

创建数据库/表

其他权限详见官方文档

-- 1. 查询权限 
SHOW GRANTS FOR '用户名'@'主机名';

-- 2. 授予权限 
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

-- 3. 撤销权限 
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
  • 多个权限用“,”分隔
  • 数据库名和表名可以使用通配符“*”,代表所有

举个栗子 

创建mojing@localhost用户,并完成以下任务:

  1. 授予mojing查询、修改数据、修改表的权限
  2. 撤销mojing在world数据库的city表的权限
create user 'mojing'@'localhost' identified by '1234';
show grants for 'mojing'@'localhost';

-- 1. 授予mojing在数据库world中的 查询、修改数据、修改表 权限 
grant select, update, alter on world.* to 'mojing'@'localhost';
show grants for 'mojing'@'localhost';

-- 2. 撤销mojing的所有权限 
revoke all on *.* from 'mojing'@'localhost';

最初mojing@localhost用户时没有权限使用world数据库的,授予权限之后可以对数据库进行操作,撤销所有权限后,不能访问world数据库。

最初mojing没有访问world的权限

 

授权之后

不总结=白学


THE END


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值