如何知道哪些 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 的授权”),而是给定一个数据库的名称,我如何确定哪些 MySQL 用户有权访问该数据库以及他们拥有什么权限? 基本上,我如何从命令行获取上面的图表?
答案1
您可以将 \G 附加到命令中以在“网格”视图中显示结果
SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
答案2
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';
答案3
你可以尝试一下,应该能提供最好的可读性:
select db 'DATABASE', host HOST, user USER from mysql.db where db = '<databasename>';
对于 CLI 来说更容易记忆的内容:
select db,host,user from mysql.db;