Rom*_*man 107 mysql permissions users
我知道我可以通过以下简单的方式设置用户的权限:
grant all on [database name].[table name] to [user name]@[host name];
Run Code Online (Sandbox Code Playgroud)
但是我怎么能看到现有的特权呢?
我需要查看与授权中使用的数据类似的数据。换句话说,我想知道给定的用户可以从给定的主机访问给定数据库的给定表。
我怎么才能得到它?
小智 73
下面是MySQL文档为SHOW GRANTS:
SHOW GRANTS [FOR user]
Run Code Online (Sandbox Code Playgroud)
此语句列出了必须发出的 GRANT 语句或语句,以复制授予 MySQL 用户帐户的权限。该帐户使用与 GRANT 语句相同的格式命名;例如,'jeffrey'@'localhost'。如果您仅指定帐户名的用户名部分,则使用“%”的主机名部分。有关指定帐户名称的其他信息,请参阅第 12.5.1.3 节,“GRANT 语法”。
mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
要列出授予用于连接服务器的帐户的权限,您可以使用以下任何语句:
SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();
Run Code Online (Sandbox Code Playgroud)
从 MySQL 5.0.24 开始,如果在 DEFINER 上下文中使用 SHOW GRANTS FOR CURRENT_USER(或任何等效语法),例如在使用 SQL SECURITY DEFINER 定义的存储过程中),则显示的授权是定义者和不是调用者。
SHOW GRANTS 仅显示明确授予指定帐户的权限。该帐户可能具有其他权限,但不会显示这些权限。例如,如果存在匿名帐户,命名帐户可能能够使用其权限,但 SHOW GRANTS 不会显示它们。
SHOW GRANTS 需要 mysql 数据库的 SELECT 权限。
| 归档时间: |
|
| 查看次数: |
320319 次 |
| 最近记录: |