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 权限都被收回了。

相关推荐
技术宝哥13 分钟前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
学地理的小胖砸1 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
dddaidai1232 小时前
Redis解析
数据库·redis·缓存
数据库幼崽2 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd2 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou3 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh3 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵4 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多5 小时前
Linux——mysql主从复制与读写分离
数据库·mysql
初次见面我叫泰隆5 小时前
MySQL——1、数据库基础
数据库·adb