CREATE PROJECTION POLICY¶
現在または指定のスキーマに新しい 投影ポリシー を作成するか、既存の投影ポリシーを置き換えます。
投影ポリシーを作成したら、 ALTER TABLE ... ALTER COLUMN コマンドを使用してテーブル列に、または ALTER VIEW コマンドを使用してビュー列に投影ポリシーを適用します。
- こちらもご参照ください。
このトピックの内容:
構文¶
CREATE [ OR REPLACE ] PROJECTION POLICY [ IF NOT EXISTS ] <name>
AS () RETURNS PROJECTION_CONSTRAINT -> <body>
[ COMMENT = '<string_literal>' ]
パラメーター¶
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);
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;