SVV_RLS_APPLIED_POLICY
SVV_RLS_APPLIED_POLICY を使用して、RLS で保護された関係を参照するクエリに対する RLS ポリシーの適用をトレースします。
SVV_RLS_APPLIED_POLICY は以下のユーザーに表示されます。
スーパーユーザー
sys:operator
ロールを持つユーザーACCESS SYSTEM TABLE のアクセス許可を持つユーザー
sys:secadmin にはこのシステム許可が付与されていないことに注意してください。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
username | text | クエリを実行したユーザーの名前。 |
query | integer | クエリの ID。 |
xid | long | トランザクションのコンテキスト。 |
pid | integer | クエリを実行しているリーダープロセス。 |
recordtime | 時系 | クエリが記録された時間。 |
コマンド | char(1) | RLS ポリシーが適用されたコマンド。使用可能な値は次のとおりです。k は不明、s は選択、u は更新、i は挿入、y はユーティリティ、d は削除。 |
datname | text | 行レベルのセキュリティポリシーがアタッチされている関係のデータベースの名前。 |
relschema | text | 行レベルのセキュリティポリシーがアタッチされている関係のスキーマの名前。 |
relname | text | 行レベルのセキュリティポリシーがアタッチされている関係の名前。 |
polname | text | 関係にアタッチされている行レベルのセキュリティポリシー名。 |
poldefault | char(1) | 関係にアタッチされている行レベルのセキュリティポリシーのデフォルト設定。使用可能な値は、デフォルトの false ポリシーが適用されている場合は false の f 、デフォルトの true ポリシーが適用されている場合は true の t です。 |
サンプルクエリ
次の例では、SVV_RLS_APPLIED_POLICY の結果を示します。SVV_RLS_APPLIED_POLICY を照会するには、ACCESS SYSTEM TABLE 許可が必要です。
-- Check what RLS policies were applied to the run query. SELECT username, command, datname, relschema, relname, polname, poldefault FROM svv_rls_applied_policy WHERE datname = CURRENT_DATABASE() AND query = PG_LAST_QUERY_ID(); username | command | datname | relschema | relname | polname | poldefault ----------+---------+-----------+-----------+--------------------------+-----------------+------------ molly | s | tickit_db | public | tickit_category_redshift | policy_concerts |