MySQL——数据库的高级操作(三)权限管理(4)收回权限

在 MySQL中,为了保证数据库的安全性,需要将用户不必要的权限收回,例如,数据管理员发现某个用户不应该具有 DELETE 权限,就应该及时将其收回。为了实现这种功能,MySQL提供一个 REVOKE 语句,该语句可以收回用户的权限。

REVOKE的语法格式如下:

sql 复制代码
REVOKE privileges [columns][,privileges[(columns)]] ON database.table FROM 'username'@ hostname'[,'username'@'hostname']...

REVOKE 语法格式中的参数与GRANT语句中的参数意思相同,privileges 参数表示收回的权限,columns 表示权限作用于哪列上,如果不指定该参数表示作用于整个表。使用 REVOKE 语句收回 user4 用户的 INSERT 权限,REVOKE 语句如下:

sql 复制代码
REVOKE INSERT ON *.* FROM "user4'@'localhost';

上述语句执行成功后,可以使用 SELECT 语句来查询 user 表中的用户信息,查询结果如下:

sql 复制代码
mysql> SELECT Host,User,Password,Insert_priv FROM mysql.user WHERE user='user4'\G
*************************** 1. row ***************************
       Host: localhost
       User: user4
   Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
Insert priv: N
l row in set (0.02 sec)

从上述结果可以看出,Insert_priv 的权限值已经被修改为 N,因此可以说明REVOKE 语句将 user4 的 INSERT 权限收回了。

如果用户的权限比较多,想一次性将其收回,使用上述语句就会比较麻烦,为此,REVOKE语句还提供了收回所有权限的功能。REVOKE语句收回全部权限的语法格式如下:

sql 复制代码
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@ 'hostname'[,'username'@'hostname']...

使用 REVOKE 语句收回 user4 的所有权限,REVOKE 语句如下:

sql 复制代码
REVOKE ALL PRIVILEGES,GRANT OPTION FROM 'user4'@'localhost';

上述语句执行成功后,可以使用 SELECT 语句来查询 user 表中的用户信息,查询结果如下:

sql 复制代码
mysql> SELECT Host,User,Password,Insert_priv,Select_priv,Grant_priv from mysql.user where user='user4'\G
*************************** 1. row ***************************
       Host: localhost
       User: user4
   Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
Insert priv: N
Select priv:N
 Grant priv: N
1 row in set (0.00 sec)

从上述结果可以看出,user4 用户的 INSERT、SELECT、GRANT 权限都被收回了。

相关推荐
Tsuki_tl5 分钟前
【总结】Redis五大数据类型应用场景及基本命令
数据库·redis·后端·缓存·缓存中间件·redis命令·redis 五大数据类型
Gauss松鼠会5 分钟前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
系统集成-鹰翔11 分钟前
ERP对接升级提示数据库迁移失败:SQLite逐版本事务到底回滚到哪一步
javascript·数据库·经验分享·后端
西瓜拿铁好喝11 分钟前
开源和闭源 AI 办公工具,分别适合谁
java·前端·数据库
一技安身12 分钟前
MySQL 8.4.13 LTS 通用二进制包(Linux免安装版)完整教程
linux·mysql·adb
代码派21 分钟前
业务不停机迁移 MySQL 到 TiDB,NineData 数据增量同步实操演示
数据库·mysql·tidb·ninedata·无停机迁移·增量迁移·全量迁移
Gauss松鼠会25 分钟前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
Elastic 中国社区官方博客31 分钟前
基于 Jina OCR v1 与 Elasticsearch 的 PDF 智能混合检索与 RAG 系统实战指南
大数据·数据库·elasticsearch·搜索引擎·ocr·jina
我不会起名字32237 分钟前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
mysql·explain·执行计划·索引下推·成本模型
楚识科技38 分钟前
信创环境下 OCR 部署实践:从麒麟系统到达梦数据库的全栈适配
数据库·ocr