我如何知道哪些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语法,但在这种情况下我没有看到它。)
请注意,我不是问什么授予某个特定用户(即“SHOW GRANTS for myuser1”),而是给定数据库的名称,如何确定哪些MySQL用户有权访问该数据库以及他们拥有哪些权限? 基本上,我怎么能从命令行得到上面的图表?
您可以将\ G附加到命令中,以“网格”forms显示结果
SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';
您可以试试这个,应该提供最好的可读性:
select db 'DATABASE', host HOST, user USER from mysql.db where db = '<databasename>';
为了这个cli更多的记忆:
select db,host,user from mysql.db;