如何在mysql中使用REVOKE撤销权限

来源:这里教程网 时间:2026-02-28 20:12:42 作者:

在MySQL中,REVOKE 语句用于撤销已授予用户的权限。正确使用 REVOKE 可以增强数据库的安全性,防止用户执行超出其职责范围的操作。

基本语法

REVOKE 的基本语法如下:

REVOKE 权限类型 [(列名)] ON 数据库名.表名 FROM '用户名'@'主机名';

说明:

权限类型:如 SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES 等。 数据库名.表名:指定权限作用的范围,可用 *.* 表示所有数据库的所有表。 用户名@主机名:必须与 GRANT 时定义的一致,例如 'user1'@'localhost'。

撤销特定权限

如果你想撤销某个用户对某张表的插入权限,可以这样操作:

REVOKE INSERT ON mydb.users FROM 'alice'@'localhost';

执行后,用户 alice 将不能再向 mydb.users 表插入数据。

撤销所有权限

要撤销用户在某个数据库上的所有权限,使用 ALL PRIVILEGES:

REVOKE ALL PRIVILEGES ON mydb.* FROM 'bob'@'%';

这条命令会移除用户 bob 在 mydb 数据库中所有表的所有权限。

撤销管理权限

某些权限如 GRANT OPTION 或 SUPER,也需要单独处理:

REVOKE GRANT OPTION ON mydb.* FROM 'charlie'@'localhost';

这将撤销 charlie 授予他人权限的能力,但保留其原有操作权限。

撤销完成后,建议运行 FLUSH PRIVILEGES; 确保权限变更立即生效:

FLUSH PRIVILEGES;

基本上就这些。只要注意用户名和主机名的匹配,以及权限范围的精确指定,REVOKE 使用起来并不复杂,但容易忽略大小写和引号细节。

相关推荐