ALTER PROJECTION POLICY¶
既存の 投影ポリシー ルールを新しいルールまたは新しいコメントで置き換え、投影ポリシーの名前を変更できるようにします。
ポリシールールに加えられた変更は、投影ポリシーを使用する SQL クエリが次回実行されるときに有効になります。
- こちらもご参照ください。
構文¶
ALTER PROJECTION POLICY [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER PROJECTION POLICY [ IF EXISTS ] <name> SET BODY -> <expression>
ALTER PROJECTION POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER PROJECTION POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER PROJECTION POLICY [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'
ALTER PROJECTION POLICY [ IF EXISTS ] <name> UNSET COMMENT
パラメーター¶
name
変更する投影ポリシーの識別子を指定します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
RENAME TO new_name
投影ポリシーの新しい識別子を指定します。スキーマに対して一意である必要があります。識別子が別の投影ポリシーにすでに配置されている場合、新しい識別子は使用できません。
詳細については、 識別子の要件 をご参照ください。
オプションでオブジェクトの名前を変更して、オブジェクトを別のデータベースやスキーマに移動できます。これを実行するには、新しいデータベース名やスキーマ名をそれぞれ
db_name.schema_name.object_name
またはschema_name.object_name
の形式で含む、修飾されたnew_name
値を指定します。注釈
宛先データベースやスキーマはすでに存在している必要があります。また、同じ名前のオブジェクトが宛先データベースにすでに存在することはできません。存在する場合、ステートメントはエラーを返します。
オブジェクトをマネージドアクセススキーマに移動することは、オブジェクトの所有者(つまり、オブジェクトに対して OWNERSHIP 権限を持つロール)がターゲットスキーマも所有している場合を 除き 禁止されています。
SET ...
投影ポリシーに設定する1つ以上のプロパティを指定します。
BODY -> expression
SQL 列を投影するかどうかを決定する式。
この式は内部 PROJECTION_CONSTRAINT 関数を呼び出して、列を投影するかどうかを決定します。
PROJECTION_CONSTRAINT(ALLOW => TRUE)
--- 投影ポリシーがアタッチされている列を投影できるようにします。PROJECTION_CONSTRAINT(ALLOW => FALSE)
--- 投影ポリシーがアタッチされている列を投影できないようにします。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。
COMMENT = 'string_literal'
投影ポリシーのコメントを追加するか、既存のコメントを上書きします。
デフォルト: 値なし
UNSET ...
投影ポリシーに対して、デフォルトにリセットして設定を解除する1つまたは複数のプロパティおよび/またはパラメーターを指定します。
TAG tag_name [ , tag_name ... ]
COMMENT
プロパティ/パラメーターをリセットするときは、名前のみを指定します。プロパティの値を指定すると、エラーが返されます。
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
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 アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
投影ポリシー DDL と権限の詳細については、 権限とコマンド をご参照ください。
使用上の注意¶
既存の投影ポリシーを更新し、ポリシーの現在の定義を確認する必要がある場合は、 DESCRIBE PROJECTION POLICY コマンドまたは GET_DDL 関数を実行します。
投影ポリシーを マネージドアクセススキーマ に(ALTER PROJECTION POLICY ... RENAME TO 構文を使用して)移動することは、投影ポリシーの所有者(つまり、投影ポリシーの OWNERSHIP 権限を持つロール)がターゲットスキーマも所有している場合を 除き、禁止されています。
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
投影ポリシーの名前を変更します。
ALTER PROJECTION POLICY mypolicy RENAME TO proj_policy_acctnumber;