- カテゴリ:
POLICY_REFERENCES¶
オブジェクトに指定されたポリシーが割り当てられている各オブジェクトの行を返します。 または は、指定されたオブジェクトに割り当てられている各ポリシーの行を返します。
次もご参照ください。 POLICY_REFERENCES ビュー (Account Usageビュー)
構文¶
POLICY_REFERENCES(
POLICY_NAME => '<string>' )
POLICY_REFERENCES(
REF_ENTITY_NAME => '<string>' ,
REF_ENTITY_DOMAIN => '<string>'
)
引数¶
POLICY_NAME => 'string'
ポリシー名を指定します。
ポリシー名全体を一重引用符で囲む必要があります。
ポリシー名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります(つまり、
'"<ポリシー名>"'
)。
現在、ポリシー名を引数として指定する場合、Snowflakeは次のポリシーをサポートしています。
REF_ENTITY_NAME => 'string'
ポリシーが設定されているオブジェクトの名前(つまり、テーブル名、ビュー名、外部テーブル名、ユーザー名)。
オブジェクト名全体を一重引用符で囲む必要があります。
オブジェクト名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります(つまり、
'"<ポリシー名>"'
)。
REF_ENTITY_DOMAIN => 'string'
ポリシーが設定されているオブジェクト型(例: テーブル、ビュー、ユーザー)。
オブジェクトが外部テーブルの場合は、引数として
'table'
を使用します。
使用上の注意¶
結果は、クエリを実行するロールに付与された権限に基づいて返されます。
ロールに APPLY MASKING POLICY グローバル権限がある場合、Snowflakeは、クエリ結果ですべてのマスキングポリシーの関連付けを返します。
ロールに APPLY ROW ACCESS POLICY グローバル権限がある場合、Snowflakeは、クエリ結果ですべての行アクセスポリシーの関連付けを返します。
ロールが特定のポリシーに対して APPLY 権限を持っている場合(例: MASKING POLICY に対する APPLY)、Snowflakeは、クエリを実行するロールが所有するオブジェクトに対してのみ、そのポリシーの関連付けを返します。
ロールがポリシーに対する APPLY グローバル権限または OWNERSHIP 権限のいずれかを持っているが、テーブルまたはビューの OWNERSHIP を持っていない場合(例: テーブルに対する SELECT)、Snowflakeはクエリ結果にポリシーの関連付けを表示しません。
ロールにはポリシー権限がないが、テーブルに対する OWNERSHIP 権限がある場合、Snowflakeはエラーメッセージを返し、ポリシーの関連付けを表示しません。
Information Schemaテーブル関数を呼び出す場合は、セッションに使用中の INFORMATION_SCHEMA スキーマがある、 または 関数に完全修飾のオブジェクト名を使用する必要があります。詳細については、 Snowflake Information Schema をご参照ください。
構文バリエーションを1つ選択して、クエリを実行します。引数を混在させると、エラーとクエリの失敗が発生します。
引数
ref_entity_name
とref_entity_domain
を一緒に含める必要があります。そうしないと、クエリに失敗します。この関数は、特定のユーザーにパスワードまたはセッションポリシーが設定されているかどうかを判断する構文をサポートしていません。つまり、引数
REF_ENTITY_NAME = 'jsmith'
およびREF_ENTITY_DOMAIN = 'user'
を使用した構文の使用はサポートされていません。指定されたオブジェクト名が存在しない場合、またはクエリ演算子がオブジェクトのポリシーを表示する権限を持っていない場合、Snowflakeはエラーを返します。演算子がポリシー関連付けのサブセットを表示することを許可されている場合、Snowflakeはポリシー関連付けの結果セットを返すことができます。
ref_entity_domain
としてリストされている、サポートされていないオブジェクト型(例:'stream'
)もエラーを返します。ポリシーに対する APPLY または OWNERSHIP 権限がクエリ演算子にない場合、Snowflakeは結果セットを返しません。
出力¶
この関数は、次の列を返します。
列 |
データ型 |
説明 |
---|---|---|
POLICY_DB |
TEXT |
ポリシーが設定されているデータベース。 |
POLICY_SCHEMA |
TEXT |
ポリシーが設定されているスキーマ。 |
POLICY_NAME |
TEXT |
ポリシーの名前。 |
POLICY_KIND |
TEXT |
Snowflake内のポリシーのタイプ。 |
REF_DATABASE_NAME |
TEXT |
クエリされたオブジェクトが参照するオブジェクトを含むデータベースの名前。 |
REF_SCHEMA_NAME |
TEXT |
クエリされたオブジェクトが参照するオブジェクトを含むスキーマの名前。 |
REF_ENTITY_NAME |
TEXT |
ポリシーが設定されているオブジェクトの名前(つまり、テーブル名、ビュー名、外部テーブル名)。 |
REF_ENTITY_DOMAIN |
TEXT |
ポリシーが設定されているオブジェクト型(つまり、テーブル、ビュー)。 |
REF_COLUMN_NAME |
TEXT |
ポリシーが設定されている列名。 |
REF_ARG_COLUMN_NAMES |
ARRAY |
マスキングポリシーが設定されているクエリ結果の行に対して NULL を返します。 |
TAG_DATABASE |
TEXT |
ポリシーがタグに割り当てられているタグを含むデータベースの名前。ポリシーがタグに割り当てられていない場合は NULL です。 |
TAG_SCHEMA |
TEXT |
ポリシーがタグに割り当てられているタグを含むスキーマの名前。ポリシーがタグに割り当てられていない場合は NULL です。 |
TAG_NAME |
TEXT |
ポリシーが割り当てられているタグの名前。ポリシーがタグに割り当てられていない場合は NULL です。 |
POLICY_STATUS |
TEXT |
ポリシーのステータスを指定します。これは、 |
POLICY_STATUS 列については次の点に注意してください。
ACTIVE
列(つまり、 REF_COLUMN_NAME)が、タグによって単一のポリシーにのみ関連付けられることを指定します。
MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN
複数のマスキングポリシーが同じ列に割り当てられることを指定します。
COLUMN_IS_MISSING_FOR_SECONDARY_ARG
ポリシー(つまり、 POLICY_NAME)が条件付きマスキングポリシーであり、テーブル(つまり、 REF_ENTITY_NAME)に同じ名前の列がないことを指定します。
COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG
ポリシーが条件付きマスキングポリシーであり、テーブルに同じ名前の列がありますが、マスキングポリシー署名のデータ型とは異なるデータ型であることを指定します。
例¶
列に ssn_mask
という名前のマスキングポリシーが設定されている各オブジェクト(つまり、テーブルまたはビュー)の行を返します。
use database my_db; use schema information_schema; select * from table(information_schema.policy_references(policy_name => 'my_db.my_schema.ssn_mask'));
my_table
という名前のテーブルに割り当てられた各ポリシーの行を返します。
use database my_db; use schema information_schema; select * from table(information_schema.policy_references(ref_entity_name => 'my_db.my_schema.my_table', ref_entity_domain => 'table'));