Supabaseで
- どのテーブルのどのカラムに
- 誰が
-
INSERTやSELECT,UPDATEできるか
を調べるSQLです。
カラムレベルでの権限を調べるSQL
カラムレベルの権限はinformation_schemaのcolumn_privilegesビューを開くと簡単にわかります。Supabaseでは、publicスキーマでのanonロールとauthenticatedロールの権限がアプリケーションが気にすべき権限なので、その2つに絞って見ると分かりやすいです。
select grantee, table_name, column_name, privilege_type
from information_schema.column_privileges
where table_schema = 'public'
and grantee in ('anon', 'authenticated')
order by grantee, table_name, privilege_type, column_name;
実行結果の例
-
granteeが権限付与されたロール名です。Supabaseではanonやauthenticatedになります。 -
table_nameはどのテーブルかを指します。 -
column_nameはどのカラムかを指します。 -
privilege_typeはそのカラムに対してSELECTやINSERT、UPDATEができるかを指します。
ここの結果に出てこないということは、その権限が無いということです。
