TLDR;
###目標:###MySQL 8
###試す:###私が試したことがある、または知っている:
SOF の検索キーワード:
mysql
、DBA の友人たちと解決策を見つける
ユーザー
showdatabases 権限を付与しますが、取得できるのはスキーマ リストのみです
SELECT ON *.*
###背景:###
私の会社は、監査やセキュリティ監視、その他の問題のために MySQL メタデータを収集するよう DevOps に命令しています (全体の詳細は知りません)。私のリーダーは、不必要なデータ侵害が発生しないことを期待しています。
ところで、彼ら (おそらく監査部門) がメタデータを収集する具体的な方法はわかりません。私がしなければならないのは、彼らのために認可されたユーザーを作成することだけです。
この問題の解決策を見つけたと思いますが、それは単なるハックであり、本当の解決策ではありません。
https://dev.mysql.com/doc /refman/8.0/en/show-tables.html はこう言いました:
つまり、SHOW TABLES を使用したり、INFORMATION_SCHEMA に対するクエリでテーブルを表示したりすることはできません (SHOW TABLES は実際にはこれらのシステム ビューに対するクエリにすぎないため)。
しかし、「特権はない」という言葉を聞いて、私は考えさせられました。ユーザーが持つことはできるが、データの読み取りまたは書き込みは許可されていない権限はありますか?
https://dev.mysql.com/doc/refman /8.0/en/grant.html はこう言いました:
ショービュー
どうでしょうか?これにより、メタデータの表示のみが許可され、テーブルやビューのクエリは許可されません。それで私はそれを試してみました:
リーリー次に、そのユーザーとしてログインし、次のことを試しました:
リーリーコラムなども表示できます。
明確にしておきますが、これらはビューではなく特定のテーブルです。ただし、監査ユーザーにはテーブルに対するアクセス許可 (無関係なアクセス許可さえも) がないため、テーブルに関するメタデータを表示できるようにするという目的を果たします。
MySQL 8.0.20 では、
SHOW ROUTINES
権限が追加されました。これまでは、ストアド プロシージャまたは関数の本体を表示するには、SELECT
権限が必要でした。しかし、質問では監査人の閲覧ルーチンについては言及されていませんでした。