どの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構文を頻繁に表示しますが、この場合は表示されません。)

特定のユーザーに付与するもの(つまり、「SHOW GRANTS for myuser1」)を尋ねるのではなく、データベースの名前を指定して、どのMySQLユーザーがそのデータベースにアクセスできるか、どの特権を持っているかを確認することに注意してください? 基本的に、コマンドラインから上記のチャートを取得するにはどうすればよいですか?

回答:


16

コマンドに\ Gを追加して、「grid」ビューに結果を表示できます。

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

4
前に見られなかった\ Gの+1
jx12345

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;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.