PostgreSQLで、どのロールに、どのテーブルのどのカラムに、どんな権限(INSERT
, UPDATE
, SELECT
)が付与されているかを確認するSQLです。
select grantee,
table_name as "table",
privilege_type as type,
string_agg(column_name, ', ' order by column_name) as columns
from information_schema.column_privileges
where table_schema = 'public'
group by grantee, table_name, privilege_type
order by grantee, table_name, privilege_type;
実行結果の例
ここで紹介したSQLは「カラム単位」の権限確認です。テーブル単位の大まかな権限の確認方法は次の記事をご覧ください。