SVV_RLS_APPLIED_POLICY - Amazon Redshift

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 |