十五、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这个库,证明取消权限成功:

相关推荐
TDengine (老段)17 分钟前
开放生态破局工业大数据困局:TDengine 的迭代升级与全链路数据自由流动
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
一位代码18 分钟前
一些常用的通用 mysql 命令详解及注意事项
数据库·mysql
曹牧31 分钟前
Oracle:五笔码
数据库·oracle
苹果醋331 分钟前
JAVA设计模式之观察者模式
java·运维·spring boot·mysql·nginx
今晚务必早点睡32 分钟前
MySQL 新手避坑指南:安装、区分、检查一步到位
数据库·mysql·adb
心本无晴.33 分钟前
拣学--基于vue3和django框架实现的辅助考研系统
vue.js·python·mysql·考研·django·dify
JIngJaneIL35 分钟前
基于java+ vue畅游游戏销售管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·游戏
詹姆斯爱研究Java36 分钟前
基于Django的租房网站的设计与实现
数据库·python·django
deng-c-f36 分钟前
Linux C/C++ 学习日记(50):连接池
数据库·学习·连接池
运维行者_43 分钟前
APM 性能监控是什么?从应用监控与网站监控了解基础概念
网络·数据库·云原生·容器·kubernetes·智能路由器·运维开发