13.7.5.21 SHOW GRANTS 语句
SHOW GRANTS [FOR user]
此语句以GRANT语句的形式显示分配给MySQL用户帐户的权限,必须执行GRANT语句才能复制权限分配。
注意
要显示MySQL帐户的非特权信息,请使用SHOW CREATE USER语句。 参见第 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();
mysql> show grants for root \G
*************************** 1. row ***************************
Grants for root@%: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
1 row in set (0.00 sec)
mysql>
mysql> SHOW GRANTS FOR CURRENT_USER;
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
如果在定义者上下文中使用SHOW GRANTS FOR CURRENT_USER
(或任何等效语法),例如在以定义者而非调用者权限执行的存储过程中,则显示的授权是定义者的授权,而不是调用者的授权。
SHOW GRANTS
不显示可用于指定帐户但授予其他帐户的权限。例如,如果存在匿名帐户,则命名帐户可能能够使用其权限,但SHOW GRANTS
不会显示这些权限。
SHOW GRANTS
输出不包括IDENTIFIED BY PASSWORD子句。请改用SHOW CREATE USER
语句。请参阅第13.7.5.12节“ SHOW CREATE USER 语句”。