哪些 MySQL 用户可以访问数据库?

Phi*_*bin 17 mysql

如何判断哪些 MySQL 用户可以访问数据库以及他们拥有哪些权限?

当我单击“权限”时,我似乎能够从 phpMyAdmin 获取此信息。. .

                 Users having access to "mydatabase"
User     Host       Type               Privileges              Grant
myuser1  %          database-specific  ALL PRIVILEGES          Yes
root     localhost  global             ALL PRIVILEGES          Yes
myuser2  %          database-specific  SELECT, INSERT, UPDATE  No
Run Code Online (Sandbox Code Playgroud)

. . . 但我想知道如何从命令行执行此查询。

(phpMyAdmin 经常向我展示它正在执行的命令的 SQL 语法,但在这种情况下我没有看到它。)

请注意,我不是在问特定用户有什么授权(即“为 myuser1 显示授权”),而是在给定数据库名称的情况下,我如何确定哪些 MySQL 用户可以访问该数据库以及他们拥有哪些权限? 基本上,如何从命令行获取上面的图表?

小智 22

您可以将 \G 附加到命令以获取显示在“网格”视图中的结果

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
Run Code Online (Sandbox Code Playgroud)

  • +1 对于 \G 以前没有见过 (5认同)
  • 使用 `\G` 时,您不再需要 `;`。 (2认同)

K. *_*ley 9

SELECT * FROM mysql.db WHERE Db = '<database name in LC>';
Run Code Online (Sandbox Code Playgroud)


sja*_*jas 6

您可以尝试一下,应该提供最佳的可读性:

select db 'DATABASE', host HOST, user USER from mysql.db where db = '<databasename>';
Run Code Online (Sandbox Code Playgroud)

cli 更容易记住的东西:

select db,host,user from mysql.db;
Run Code Online (Sandbox Code Playgroud)