Documentation Home

13.7.5.22 SHOW GRANTS 语句

SHOW GRANTS [FOR user]

GRANT此语句以必须执行以复制权限分配 的语句的形式显示分配给 MySQL 用户帐户 的权限。

SHOW GRANTS需要系统数据库的 SELECT权限 mysql,但显示当前用户的权限除外。对于包含 IDENTIFIED BY PASSWORD显示帐户密码哈希值的子句的 输出,SUPER需要权限才能查看实际哈希值。否则,该值显示为 <secret>

要为帐户命名SHOW GRANTS,请使用与语句相同的格式 GRANT(例如, 'jeffrey'@'localhost'):

mysql> SHOW GRANTS FOR 'jeffrey'@'localhost';
+------------------------------------------------------------------+
| Grants for jeffrey@localhost                                     |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `jeffrey`@`localhost`                      |
| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO `jeffrey`@`localhost` |
+------------------------------------------------------------------+

主机部分,如果省略,默认为'%'. 有关指定帐户名称的其他信息,请参阅 第 6.2.4 节,“指定帐户名称”

要显示授予当前用户(您用于连接服务器的帐户)的权限,您可以使用以下任何语句:

SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();

如果SHOW GRANTS FOR CURRENT_USER(或任何等效语法)在定义者上下文中使用,例如在使用定义者而不是调用者特权执行的存储过程中,则显示的授权是定义者而非调用者的授权。

SHOW GRANTS不显示指定帐户可用但授予其他帐户的权限。例如,如果存在匿名帐户,则指定帐户可能能够使用其权限,但SHOW GRANTS不会显示它们。