SHOW GRANTS [FOR user]
This statement displays the privileges that are assigned to a
MySQL user account, in the form of
GRANT statements that must be
executed to duplicate the privilege assignments.
SHOW GRANTS requires the
SELECT privilege for the
mysql database, except to see the privileges
for the current user.
For output that includes an IDENTIFIED BY
PASSWORD clause displaying an account password hash
value, the SUPER privilege is
required to see the actual hash value. Otherwise, the value
displays as <secret>.
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.4, “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();
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.