ALTER TAG¶
タグの名前変更やタグのマスキングポリシーの設定など、既存のタグのプロパティを変更します。
タグに加えられた変更は、タグの実行を使用する SQL クエリが次回実行されるときに有効になります。
- こちらもご参照ください。
構文¶
ALTER TAG [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER TAG [ IF EXISTS ] <name> { ADD | DROP } ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ]
ALTER TAG [ IF EXISTS ] <name> SET
  [ PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
    [ ON_CONFLICT = { '<string>' | ALLOWED_VALUES_SEQUENCE } ] ]
  [ COMMENT = '<string_literal>' ]
ALTER TAG [ IF EXISTS ] <name> UNSET { ALLOWED_VALUES | PROPAGATE | ON_CONFLICT | COMMENT }
ALTER TAG [ IF EXISTS ] <name> SET MASKING POLICY
  <masking_policy_name> [ , MASKING POLICY <masking_policy_2_name> , ... ] [ FORCE ]
ALTER TAG [ IF EXISTS ] <name> UNSET MASKING POLICY <masking_policy_name> [ , MASKING POLICY <masking_policy_2_name> , ... ]
パラメーター¶
- name
- タグの識別子。CREATE <オブジェクト> ステートメントまたは ALTER <オブジェクト> ステートメントのいずれかを使用して、 オブジェクト にタグ文字列値を割り当てます。 - 識別子の値はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: 「私のオブジェクト」)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。 - 詳細については、 識別子の要件 をご参照ください 
- RENAME TO new_name
- タグの新しい識別子を指定します。スキーマに対して一意である必要があります。識別子が別のタグにすでに配置されている場合、新しい識別子は使用できません。 - 詳細については、 識別子の要件 をご参照ください。 - オプションでオブジェクトの名前を変更して、オブジェクトを別のデータベースやスキーマに移動できます。これを実行するには、新しいデータベース名やスキーマ名をそれぞれ - db_name.schema_name.object_nameまたは- schema_name.object_nameの形式で含む、修飾された- new_name値を指定します。- 注釈 - 宛先データベースやスキーマはすでに存在している必要があります。また、同じ名前のオブジェクトが宛先データベースにすでに存在することはできません。存在する場合、ステートメントはエラーを返します。 
- オブジェクトを管理アクセススキーマに移動することは、オブジェクトの所有者(つまり、オブジェクトに対して OWNERSHIP 権限を持つロール)がターゲットスキーマも所有している場合を 除き 禁止されています。 
 
- ALLOWED_VALUES 'val_1' [ , 'val_2' [ , ... ] ]
- 対応する CREATE <オブジェクト> または ALTER <オブジェクト> コマンドを使用してタグが オブジェクト に設定されている場合に、タグに割り当てることができる選択可能な文字列値のコンマ区切りリストを指定します。 - このリストのタグ値の最大数は300です。 - タグがターゲットオブジェクトに自動的に伝播するように構成されている場合、許可リスト内の値の順序は、競合がどのように解決されるかに影響します。詳細については、 タグの伝播の競合 をご参照ください。 - デフォルト: NULL (空文字列値(つまり、 - ' ')を含む、すべての文字列値が許可されます)。
- PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
- 
タグがソースオブジェクトからターゲットオブジェクトへ 自動的に伝播 されることを指定します。オブジェクト依存関係、 データ移動、またはその両方がある場合にタグが伝播するように構成できます。 このパラメーターの変更は、ターゲットオブジェクトに自動的に伝播されません。これらの変更は、タグの伝播の一部としてターゲットオブジェクトに以前に適用されたタグには影響しません。 可能な値は次のとおりです。 - ON_DEPENDENCY_AND_DATA_MOVEMENT
- オブジェクト依存関係やデータ移動がある場合にタグを伝播します。 
- ON_DEPENDENCY
- オブジェクト依存関係のタグを伝播しますが、データ移動のタグは伝播しません。 
- ON_DATA_MOVEMENT
- オブジェクト依存関係ではなく、データ移動があった場合にタグを伝播します。 
 
- ON_CONFLICT = { 'string' | ALLOWED_VALUES_SEQUENCE }
- 
伝播されたタグ の値の間に矛盾がある場合にどうするかを指定します。 このパラメーターを設定せず、競合が発生した場合、タグの値は文字列 CONFLICTに設定されます。このパラメーターの変更は、ターゲットオブジェクトに自動的に伝播されません。これらの変更は、タグの伝播の一部としてターゲットオブジェクトに以前に適用されたタグには影響しません。 可能な値は次のとおりです。 - 'string'
- 競合がある場合、タグの値は指定された文字列に設定されます。 
- ALLOWED_VALUES_SEQUENCE
- タグの ALLOWED_VALUES プロパティの値の順序は、競合がある場合にどちらの値が使われるかを決定します。例えば、以下のステートメントでタグを作成したとします。 - CREATE TAG my_tag ALLOWED_VALUES 'blue', 'red' PROPAGATE = ON_DEPENDENCY; - もし競合があれば、 - my_tagの値は- blueになります。これは許容値リストで- redより前にあるためです。
 デフォルト: タグの値を CONFLICTに設定します。
- MASKING POLICY masking_policy_name [ , MASKING POLICY masking_policy_2_name , ... ]
- タグに割り当てることができる マスキングポリシー のリストをコンマ区切りで指定します。 
- FORCE
- 単一のステートメント内で、タグに現在設定されているマスキングポリシーを別のマスキングポリシーに置き換えます。 - タグに同じ データ型 のポリシーがすでに設定されている場合は、 FORCE キーワードを使用するとマスキングポリシーが置き換えられることに注意してください。 - 現在タグにマスキングポリシーが設定されていない場合は、このキーワードを指定しても効果はありません。 - 詳細については、 タグのマスキングポリシーを置き換える をご参照ください。 
- COMMENT = 'string_literal'
- タグのコメントを指定します。 - デフォルト: 値なし 
- UNSET
- タグの設定を解除する1つ(または複数)のプロパティ、パラメーター、またはその両方を指定します。これにより、デフォルトにリセットされます。 - ALLOWED_VALUES
- PROPAGATE
- ON_CONFLICT
- COMMENT
 
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
| 権限 | オブジェクト | 注意 | 
|---|---|---|
| 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). | 
| APPLY MASKING POLICY | アカウント | タグに対するマスキングポリシーの割り当ておよび置き換えには、APPLY MASKING POLICY グローバル権限が必要です。 | 
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
タグ DDL と権限の詳細については、 アクセス制御権限 をご参照ください。
使用上の注意¶
- タグ DDL 認証の詳細については、 必要な権限 をご参照ください。 
- タグに1つ以上のマスキングポリシーを割り当てる場合、 - タグは、データ型ごとに1つのマスキングポリシーのみを持つことができます。 - たとえば、タグには、STRING データ型に対して1つのポリシー、NUMBER データ型に対して1つのポリシーなどを含めることができます。 
- マスキングポリシーがすでに列を保護していて、マスキングポリシーのあるタグが同じ列に設定されている場合は、その列に 直接 割り当てられたマスキングポリシーが、タグに割り当てられたマスキングポリシーよりも優先されます。 
- マスキングポリシーがタグに割り当てられている場合は、タグを ドロップ することはできません。また、マスキングポリシーがタグに割り当てられている場合は、マスキングポリシーをドロップすることもできません。 
 
- 複製、特にタグベースのマスキングポリシーの場合は、 ポリシー複数の考慮事項 をご参照ください。 
- メタデータについて、 - 注意 - Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。 
例¶
cost_center タグの名前を cost_center_na に変更します。ここでは、 na を北米に指定します。
ALTER TAG cost_center RENAME TO cost_center_na;
