13.7.5.17 SHOW GRANTS Syntax
SHOW GRANTS [FOR user]
This statement displays the GRANT
statement or statements that must be issued to duplicate the privileges that are granted to a MySQL user account. SHOW GRANTS
requires the SELECT
privilege for the mysql
database, except to see the privileges for the current user.
To name the account, use the same format as for the GRANT
statement; for example, 'jeffrey'@'localhost'
. If you specify only the user name part of the account name, a host name part of '%'
is used. For additional information about specifying account names, see Section 13.7.1.3, “GRANT Syntax”.
mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
To display the privileges granted to the account that you are using to connect to the server, you can use any of the following statements:
SHOW GRANTS; SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER();
As of MySQL 5.0.24, if SHOW GRANTS FOR CURRENT_USER
(or any of the equivalent syntaxes) is used in DEFINER
context, such as within a stored procedure that is defined with SQL SECURITY DEFINER
), the grants displayed are those of the definer and not the invoker.
SHOW GRANTS
displays only the privileges granted explicitly to the named account. Other privileges that might be available to the account are not displayed. For example, if an anonymous account exists, the named account might be able to use its privileges, but SHOW GRANTS
will not display them.
https://docs.oracle.com/cd/E17952_01/mysql-5.0-en/show-grants.html