カテゴリ:

Information Schemaテーブル関数

POLICY_REFERENCES

列に対して設定された マスキングポリシー、あるいはテーブルまたはビューに対して設定された 行アクセスポリシー があるすべてのオブジェクト(つまり、テーブル、ビュー)のリストを返します。

指定されたオブジェクト名とオブジェクト型を持つポリシー関連付けのリストを返します。

次もご参照ください。 POLICY_REFERENCES ビュー (Account Usageビュー)

構文

POLICY_REFERENCES(
      POLICY_NAME => '<string>' )

POLICY_REFERENCES(
       REF_ENTITY_DOMAIN => '<string>'
       , REF_ENTITY_NAME => '<string>' )

引数

POLICY_NAME => '文字列'

マスキングまたは行アクセスポリシー名を指定します。

  • 完全修飾ポリシー名(例: <データベース名>.<スキーマ名>.<ポリシー名>)を使用しない場合、Snowflakeはポリシーのセッションデータベースとスキーマを使用します。詳細については、 オブジェクト名の解決 をご参照ください。

  • ポリシー名全体を一重引用符で囲む必要があります。

  • ポリシー名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります(つまり、 '"<ポリシー名>"')。

REF_ENTITY_DOMAIN => '文字列'

ポリシーが設定されているオブジェクト型(つまり、テーブル、ビュー)。

  • 完全修飾ポリシー名(例: <データベース名>.<スキーマ名>.<ポリシー名>)を使用しない場合、Snowflakeはポリシーのセッションデータベースとスキーマを使用します。詳細については、 オブジェクト名の解決 をご参照ください。

  • ポリシー名全体を一重引用符で囲む必要があります。

  • ポリシー名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字/文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります(つまり、 '"<ポリシー名>"')。

REF_ENTITY_NAME => '文字列'

ポリシーが設定されているオブジェクトの名前(つまり、テーブル名、ビュー名、外部テーブル名)。

オブジェクトが外部テーブルの場合は、引数として 'table' を使用します。

  • 完全修飾ポリシー名(例: <データベース名>.<スキーマ名>.<ポリシー名>)を使用しない場合、Snowflakeはポリシーのセッションデータベースとスキーマを使用します。詳細については、 オブジェクト名の解決 をご参照ください。

  • ポリシー名全体を一重引用符で囲む必要があります。

  • ポリシー名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字/文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります(つまり、 '"<ポリシー名>"')。

使用上の注意

  • 結果は、クエリを実行するロールに付与された権限に基づいて返されます。

    • ロールに 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 スキーマがある、 または 関数に完全修飾のオブジェクト名を使用する必要があります。詳細については、 情報スキーマ をご参照ください。

  • 構文バリエーションを1つ選択して、クエリを実行します。引数を混在させると、エラーとクエリの失敗が発生します。

    引数 ref_entity_nameref_entity_domain を一緒に含める必要があります。そうしないと、クエリに失敗します。

  • 指定されたオブジェクト名が存在しない場合、またはクエリ演算子がオブジェクトのポリシーを表示する権限を持っていない場合、Snowflakeはエラーを返します。演算子がポリシー関連付けのサブセットを表示することを許可されている場合、Snowflakeはポリシー関連付けの結果セットを返すことができます。 ref_entity_domain としてリストされている、サポートされていないオブジェクト型(例: 'stream')もエラーを返します。

  • Snowflakeは、ポリシーに対する APPLY または OWNERSHIP 権限がないクエリ演算子の結果セットを返しません。

出力

この関数は、次の列を返します。

データ型

説明

CREATED_ON

TIMESTAMP_LTZ

ポリシーが作成された日時。

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 を返します。

列にポリシー my_db.my_schema.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_tableref_entity_name および ref_entity_domain 引数を使用して、ポリシー関連付けのリストを取得します。

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'));