CREATE PROJECTION POLICY

現在または指定のスキーマに新しい 投影ポリシー を作成するか、既存の投影ポリシーを置き換えます。

投影ポリシーを作成したら、 ALTER TABLE ... ALTER COLUMN コマンドを使用してテーブル列に、または ALTER VIEW コマンドを使用してビュー列に投影ポリシーを適用します。

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

投影ポリシー DDL 参照

このトピックの内容:

構文

CREATE [ OR REPLACE ] PROJECTION POLICY [ IF NOT EXISTS ] <name>
  AS () RETURNS PROJECTION_CONSTRAINT -> <body>
  [ COMMENT = '<string_literal>' ]
Copy

パラメーター

name

投影ポリシーの識別子。スキーマに対して一意である必要があります。

識別子の値はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

body

列を投影するかどうかを決定する SQL 式。

この式は、内部の PROJECTION_CONSTRAINT 関数を呼び出して、列の投影を許可または禁止します。

  • PROJECTION_CONSTRAINT(ALLOW => TRUE) --- 投影ポリシーがアタッチされている列を投影できるようにします。

  • PROJECTION_CONSTRAINT(ALLOW => FALSE) --- 投影ポリシーがアタッチされている列を投影できないようにします。

COMMENT = 'string_literal'

投影ポリシー用にアプリケーションのコメントを追加するか、既存のコメントを上書きします。

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

CREATE PROJECTION POLICY

スキーマ

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

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

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

投影ポリシー DDL と権限の詳細については、 権限とコマンド をご参照ください。

使用上の注意

  • 既存の投影ポリシーを更新し、ポリシーの現在の定義を確認する必要がある場合は、 DESCRIBE PROJECTION POLICY コマンドまたは GET_DDL 関数を実行します。

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

列の投影を許可しません。

CREATE OR REPLACE PROJECTION POLICY do_not_project AS ()
  RETURNS PROJECTION_CONSTRAINT ->
  PROJECTION_CONSTRAINT(ALLOW => false);
Copy

analyst カスタムロールの列を投影します。それ以外では列を投影しません。

CREATE OR REPLACE PROJECTION POLICY project_analyst_only AS ()
  RETURNS PROJECTION_CONSTRAINT ->
    CASE
      WHEN CURRENT_ROLE() = 'ANALYST'
        THEN PROJECTION_CONSTRAINT(ALLOW => true)
      ELSE PROJECTION_CONSTRAINT(ALLOW => false)
    END;
Copy