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


13

如何判断哪些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

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

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

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

Answers:


16

您可以将\ G附加到命令中,以在“网格”状态下显示结果

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;

4
+1代表\ G之前未曾见过
jx12345'4

8
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';

谢谢。这个答案似乎输出的原始数据与问题图中的图表相同。。。但格式不易理解。我想以相同的格式显示数据对于读者来说是一个练习。。。;)
菲利普·德宾

2

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

select db 'DATABASE', host HOST, user USER from mysql.db where db = '<databasename>';

cli更让人难忘:

select db,host,user from mysql.db;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.