«

MySQL查看权限show grants与回收revoke

时间:2026-11-15 07:15     作者:emer     分类: MySQL


前言

排查账号能不能连、能不能改表,要先看该用户有哪些权限。SHOW GRANTS 查看授权,REVOKE 回收多余权限。安全规范遵循最小权限。本文讲解查看、授权、回收、刷新和主机范围。

操作步骤

1. 查看当前用户权限

SHOW GRANTS;

2. 查看指定用户权限

SHOW GRANTS FOR 'app'@'%';

3. 查看所有用户

SELECT user,host FROM mysql.user;

4. 回收某权限

REVOKE DELETE ON dbname.* FROM 'app'@'%';

5. 回收全部权限

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'app'@'%';

6. 刷新权限

FLUSH PRIVILEGES;

7. 查看某库权限

SHOW GRANTS FOR 'app'@'%';

常见坑

  1. 用户名要带主机 'app'@'%',漏写 host 查不到。
  2. GRANT 授权后忘 FLUSH,旧会话权限不刷新。
  3. 直接删 mysql.user 行不安全,用 REVOKE/DROP USER。
  4. 生产账号给了 ALL 权限,违反最小权限原则。
  5. 回收后已建立的连接可能仍缓存权限,重连生效。
  6. 'app'@'localhost' 与 'app'@'%' 是两个账号。
  7. 权限层级:全局、库、表、列,回收要对应层级。

总结

SHOW GRANTS FOR 用户@主机 看权限,REVOKE 回收对应层级,FLUSH PRIVILEGES 刷新。账号带主机名,生产按最小权限只授必要库表。回收后重连生效,删除账号用 DROP USER。

遇到问题加QQ23979811 协助处理

标签: MySQL 权限 show grants revoke