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

相关推荐
深念Y1 分钟前
hotspot-adb-research
linux·数据库·adb·emmc·随身wifi·移动终端
ERD Online9 分钟前
我们怎么设计 good first issue:让第一个 PR 两小时内合入
数据库·git·后端·开源·issue
NeilYuen25 分钟前
Mysql实战——图片读写
数据库·mysql
Sayuanni%325 分钟前
微服务_注册中心Eureka与Nacos
数据库
倔强的石头_1 小时前
一次MongoDB迁移之后,我开始重新理解融合数据库
数据库
正在走向自律1 小时前
【金仓数据库征文】从 MySQL 迁移到金仓数据库:哈工大智能造价项目的一次信创改造实践
数据库·mysql·性能优化·国产数据库·数据库迁移·信创适配·金仓数据库征文
奇特認1 小时前
MySQL 集群技术 1.源码编译
数据库·mysql
爱和冰阔落1 小时前
【Linux】两个毫无关系的进程怎么通信?命名管道 FIFO 从原理到 Server/Client 实战
android·linux·数据库·c++·vim
范什么特西11 小时前
回答知识总结04(redis)
数据库·redis·缓存
码农颜11 小时前
5.4.1 锁分类
java·数据库·mysql