13.7.5.21 SHOW GRANTS 声明

SHOW GRANTS [FOR user]

该语句以GRANT语句的形式显示分配给 MySQL 用户帐户的特权,必须执行这些语句才能复制特权分配。

Note

要显示 MySQL 帐户的非特权信息,请使用显示创建用户语句。参见第 13.7.5.12 节“ SHOW CREATE USER 语句”

SHOW GRANTS需要mysql系统数据库的SELECT特权,但要显示当前用户的特权除外。

要为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不会显示它们。

SHOW GRANTS输出不包含IDENTIFIED BY PASSWORD子句。请使用显示创建用户语句。参见第 13.7.5.12 节“ SHOW CREATE USER 语句”