カテゴリ:

テーブル、ビュー、シーケンス DDL

SHOW ROW ACCESS POLICIES

アクセス権限がある行アクセスポリシーをリストします。作成日、データベースとスキーマの名前、所有者、利用可能なコメントなどの情報を返します。

こちらもご参照ください。

行アクセスポリシー DDL

このトピックの内容:

構文

SHOW ROW ACCESS POLICIES [ LIKE '<pattern>' ]
                         [ IN
                              {
                                ACCOUNT                  |

                                DATABASE                 |
                                DATABASE <database_name> |

                                SCHEMA                   |
                                SCHEMA <schema_name>     |
                                <schema_name>
                              }
                         ]

パラメーター

LIKE 'pattern'

オブジェクト名でコマンド出力をフィルターします。フィルターは、 SQL ワイルドカード文字(% および _)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。

たとえば、次のパターンは同じ結果を返します。

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
[ IN ... ]

オプションで、コマンドのスコープを指定します。次のいずれかを指定します。

ACCOUNT

アカウント全体の記録を返します。

DATABASE. DATABASE db_name

現在使用中のデータベースまたは指定されたデータベース(db_name)の記録を返します。

db_name なしで DATABASE を指定し、かつデータベースが使用されていない場合、キーワードは出力に影響しません。

SCHEMA. SCHEMA schema_name. schema_name

現在使用中のスキーマまたは指定されたスキーマ(schema_name)の記録を返します。

データベースが使用中の場合、または完全修飾 schema_name (例: db.schema) を指定する場合、 SCHEMA はオプションです。

データベースが使用されていない場合は、 SCHEMA を指定しても出力には影響しません。

デフォルト: セッションで現在使用中のデータベースがあるかどうかによって異なります。

  • データベース: DATABASE がデフォルトです(つまり、コマンドはデータベースで表示する権限を持つオブジェクトを返します)。

  • データベースなし: ACCOUNT はデフォルトです(つまり、コマンドは、アカウントで表示する権限を持つオブジェクトを返します)。

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、 最低 1 つ の次の 権限 が必要です。

権限

オブジェクト

メモ

APPLY ROW ACCESS POLICY

アカウント

APPLY

行アクセスポリシー

OWNERSHIP

行アクセスポリシー

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 Snowflakeのアクセス制御 をご参照ください。

行アクセスポリシー DDL と権限の詳細については、 行アクセスポリシーの管理 をご参照ください。

使用上の注意

  • このコマンドは、稼働中のウェアハウスを必要としません。

  • LIMIT rows の値は 10000 を超えることはできません。 LIMIT rows が省略され、結果セットが10K行より大きい場合、コマンドはエラーになります。

    10Kを超える記録が存在する結果を表示するには、 LIMIT rows を含めるか、 Snowflake Information Schema の対応するビューをクエリします。

  • このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。

次の例は、クエリを実行する ACCOUNTADMIN ロールを持つユーザーを表しています。

show row access policies;

---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
          created_on             | name | database_name | schema_name |       kind        |    owner     | comment |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
Fri, 23 Jun 1967 00:00:00 -0700  | P1   | RLS_AUTHZ_DB  | S_D_1       | ROW_ACCESS_POLICY | ACCOUNTADMIN |         |
Fri, 23 Jun 1967 00:00:00 -0700  | P2   | RLS_AUTHZ_DB  | S_D_2       | ROW_ACCESS_POLICY | ACCOUNTADMIN |         |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+

次は、行アクセスポリシーが存在する親スキーマに USAGE がなく、 ACCOUNTADMIN ロールではないロールの代表例です。

show row access policies;

---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
          created_on             | name | database_name | schema_name |       kind        |    owner     | comment |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
最上部に戻る