如何在mysql中撤销用户权限

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

在 MySQL 中撤销用户权限,使用 REVOKE 语句。这个命令可以移除用户已授予的特定权限,确保数据库安全或调整访问控制。操作前需具备相应管理权限(如 GRANT OPTION)。

基本语法

REVOKE 语句的基本格式如下:

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

其中:

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

常见撤销操作示例

以下是一些实用场景:

撤销某用户对某个数据库的所有权限:
REVOKE ALL PRIVILEGES ON mydb.* FROM 'alice'@'localhost';
仅撤销 SELECT 权限:
REVOKE SELECT ON mydb.products FROM 'bob'@'%';
撤销全局权限(所有数据库):
REVOKE CREATE ON *.* FROM 'charlie'@'192.168.1.%';
撤销管理类权限(如 GRANT OPTION):
REVOKE GRANT OPTION ON *.* FROM 'david'@'localhost';

刷新权限

执行 REVOKE 后,建议运行:

FLUSH PRIVILEGES;

确保权限变更立即生效。虽然大多数情况下自动生效,但刷新可避免缓存问题。

注意事项

撤销权限不会删除用户账户本身,仅移除权限 若用户没有对应权限,REVOKE 会报错,可添加 IF EXISTS 避免错误(MySQL 8.0+ 支持) 撤销 ALL PRIVILEGES 不包含 GRANT OPTION,需单独撤销 远程主机配置(如 '%')要准确匹配授权记录

基本上就这些。掌握 REVOKE 命令能有效管理数据库访问安全,按需回收权限是良好运维习惯。

相关推荐