mysql中REVOKE命令如何操作

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

在 MySQL 中,REVOKE 命令用于撤销已授予用户的权限。这个操作是 GRANT 的逆过程,常用于权限管理和安全控制。使用时需要具备相应的管理权限(如 GRANT OPTION 权限)。

基本语法格式

REVOKE 权限列表 ON 数据库对象 FROM '用户名'@'主机地址';

说明:

权限列表:如 SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES 等。 数据库对象:通常为 数据库名.表名,也可用 *.* 表示所有数据库的所有表。 '用户名'@'主机地址':必须与 GRANT 授予权限时使用的用户完全一致,包括主机部分。

常见操作示例

以下是一些典型场景下的 REVOKE 使用方式:

REVOKE SELECT ON mydb.users FROM 'dev_user'@'localhost';

撤销用户 dev_user 在本地对 mydb 数据库中 users 表的查询权限。

REVOKE INSERT, UPDATE ON mydb.* FROM 'dev_user'@'localhost';

撤销该用户在 mydb 数据库下所有表的插入和修改权限。

REVOKE ALL PRIVILEGES ON testdb.* FROM 'temp_user'@'%';

撤销远程用户 temp_user 对 testdb 数据库所有对象的全部权限。

REVOKE GRANT OPTION ON . FROM 'admin_user'@'192.168.1.%';

仅撤销该用户在全局范围内的授权能力,不收回其他权限。

撤销后刷新权限

权限变更后,建议执行:

FLUSH PRIVILEGES;

确保权限立即生效。虽然某些情况下 MySQL 会自动加载,但手动刷新更稳妥。

注意事项

REVOKE 不会删除用户账户本身,仅移除权限。 如果用户没有对应权限,执行 REVOKE 会报错,可先用 SHOW GRANTS FOR 'user'@'host'; 查看当前权限。 撤销的是具体授予的权限,不能撤销隐式权限或继承权限(MySQL 不支持角色继承)。 使用 % 通配符时要小心,避免误操作影响多个用户。

基本上就这些,只要注意用户标识和权限范围匹配,REVOKE 操作就很清晰。

相关推荐