十五、MySQL(DCL)如何实现用户权限控制?

1、为什么要实现用户权限控制?

在日常工作中,会存在多个用户,为了避免某些用户对重要数据库进行"误操作",从而导致严重后果,所以对用户进行权限控制是必须的。

2、常见的权限类型:

sql 复制代码
ALL,ALL PRIVILEGES   所有权限
select               查询数据
insert               插入数据
update               修改数据
delete               删除数据
alter                修改表
drop                 删除数据库/表/视图
create               创建数据库/表
*                    所有权限    

3、 权限控制如何实现?

sql 复制代码
/*使用mysql数据库*/
use mysql;

(1)查询权限

sql 复制代码
查询权限:
show grants for '用户名'@'主机名';

实际操作:

sql 复制代码
/*显示Yang这个用户的权限*/
show grants for 'Yang'@'localhost';

(2)授予权限

sql 复制代码
授予权限:
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

实际操作:

给Yang用户授予操作yht_things数据库的所有权限。

sql 复制代码
/*授予权限*/
grant all on yht_things.* to 'Yang'@'localhost';

使用Yang用户登录mysql,查询Yang用户名下的可操作数据库:

(3) 撤销权限

sql 复制代码
撤销权限:
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

实际操作:

sql 复制代码
/*撤销权限*/
revoke all on yht_things.* from 'Yang'@'localhost';

再次通过Yang用户登入mysql,查询其下所有数据库,发现并没有yht_things这个库,证明取消权限成功:

相关推荐
_ku_ku_20 分钟前
数据库系统原理 · 数据库应用开发 · 自学总结
数据库
长谷深风1111 小时前
索引提速秘籍【个人八股】
mysql·b+树·索引·索引设计原则·存储引擎优化·索引维护成本·字段选择策略
No8g攻城狮1 小时前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库
山峰哥1 小时前
SQL慢查询调优实战:从全表扫描到索引覆盖的完整复盘
前端·数据库·sql·性能优化
Irene19911 小时前
在 WSL 中下载安装 MySQL,连接到 SQLyog(MySQL 安装在 WSL vs Windows 本地对比)
mysql·wsl
代码中介商2 小时前
Redis入门:5大数据类型全解析
数据库·redis·缓存
渣渣盟2 小时前
数据库设计范式详解(纯小白版)
数据库·oracle·软考·数据库工程师
夜雪闻竹3 小时前
Cursor 对话导入:解析 SQLite 里的宝藏
数据库·sqlite·ai编程
hhb_6184 小时前
PL/SQL核心技术难点梳理与实战应用案例解析
数据库·sql
m0_470857644 小时前
PHP怎么实现工厂模式_Factory模式编写指南【指南】
jvm·数据库·python