<p>撤销用户权限使用REVOKE语句,如REVOKE SELECT ON mydb.* FROM ‘alice’@’localhost’; 需确保有权限管理权限,可撤销特定或所有权限,执行后建议FLUSH PRIVILEGES; 并用SHOW GRANTS验证。</p>
在 MySQL 中撤销用户权限,使用 REVOKE 语句。这个命令可以移除用户在特定数据库或表上的权限,比如 SELECT、INSERT、UPDATE 等。操作前需要确保你有权限管理的权限(如 GRANT OPTION)。
基本语法
REVOKE 权限类型 ON 数据库名.表名 FROM ‘用户名’@’主机名’;
说明:
- 权限类型:如 SELECT、INSERT、DELETE、ALL PRIVILEGES 等。
- 数据库名.表名:指定权限作用范围,可用 *.* 表示所有数据库的所有表。
- ‘用户名’@’主机名’:必须和创建用户时一致,比如 ‘john’@’localhost’。
常见撤销操作示例
撤销某个用户在特定数据库的读取权限:
REVOKE SELECT ON mydb.* FROM ‘alice’@’localhost’;
撤销插入和更新权限:
REVOKE INSERT, UPDATE ON sales.* FROM ‘bob’@’%’;
撤销所有权限:
REVOKE ALL PRIVILEGES ON *.* FROM ‘charlie’@’localhost’;
注意:REVOKE 不会删除用户账户本身,只是移除权限。
刷新权限
执行 REVOKE 后,建议刷新权限以使更改立即生效:
FLUSH PRIVILEGES;
这一步不是总必须的,但加上更稳妥,尤其在手动修改权限表后。
查看用户现有权限
可以用以下命令确认权限是否已撤销:
SHOW GRANTS FOR ‘用户名’@’主机名’;
例如:
SHOW GRANTS FOR ‘alice’@’localhost’;
基本上就这些。只要语法写对,撤销权限是简单直接的操作。注意别误删其他用户的权限,特别是生产环境。不复杂但容易忽略细节,比如主机名匹配。