1

MySQL Server 5.5 の特定のデータベースについて、任意のユーザーに付与されたすべての権限を表示したいと考えています。これを行うためにinformation_schema.schema_privileges、次のように select ステートメントを使用してテーブルから読み取っています。

select * from information_schema.schema_privileges where table_schema='myproject';

問題は、データベースに対する自分の許可しか表示されないことです。したがって、そのデータベースのすべてのユーザーの許可が選択の結果にリストされるように、許可を変更しようとしています。

ドキュメントでは、テーブルの情報はschema_privilegesテーブルから取得されると書かれていますがmysql.db、付与selectmysql.dbても違いはないようです。問題のデータベースに対する自分の許可しか表示されません。

助成金が必要なアイデアはありますか?

現在の助成金は以下の通りです。

show grants;
Grants for myuser@localhost
GRANT USAGE ON . TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD 'XXX'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON myproject.* TO 'myuser'@'localhost' WITH GRANT OPTION
GRANT SELECT ON mysql.user TO 'myuser'@'localhost'
GRANT SELECT ON mysql.db TO 'myuser'@'localhost'

4

1 に答える 1

0

OK、mysql.dbテーブルから直接読み取るだけで解決しました。最終的にはもっと簡単になりました!

select user, host, select_priv, insert_priv, update_priv, delete_priv, create_priv, drop_priv, grant_priv from mysql.db where Db='myproject';

于 2010-04-23T15:18:25.690 に答える