ALTER TAG

修改现有标签的属性,包括重命名标签和为标签设置掩码策略。

对标签做出的任何更改都将在下一个使用该标签的 SQL 查询运行时生效。

另请参阅:

指定标签值标签 DDL 参考

语法

ALTER TAG [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER TAG [ IF EXISTS ] <name> { ADD | DROP } ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ]

ALTER TAG <name> UNSET ALLOWED_VALUES

ALTER TAG <name> SET MASKING POLICY <masking_policy_name> [ , MASKING POLICY <masking_policy_2_name> , ... ]
                                                          [ FORCE ]

ALTER TAG <name> UNSET MASKING POLICY <masking_policy_name> [ , MASKING POLICY <masking_policy_2_name> , ... ]

ALTER TAG [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'

ALTER TAG [ IF EXISTS ] <name> UNSET COMMENT
Copy

参数

name

标签的标识符。使用 CREATE <object> 语句或 ALTER <object> 语句为 对象 分配标签字符串值。

标识符值必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如 "My object")。放在双引号内的标识符也区分大小写。

有关更多详细信息,请参阅 标识符要求

RENAME TO new_name

指定标签的新标识符;对于您的架构必须唯一。如果新标识符已用于其他标签,则不能使用该标识符。

有关更多详细信息,请参阅 标识符要求

可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定 new_name 值,该值分别以 db_name.schema_name.object_nameschema_name.object_name 的形式包含新数据库和/或架构名称。

备注

  • 目标数据库和/或架构必须已存在。此外,新位置中不能存在同名对象;否则,该语句将返回错误。

  • 除非 对象所有者(即对对象拥有 OWNERSHIP 权限的角色)也拥有目标架构,否则禁止将对象移动到托管访问架构。

ALLOWED_VALUES 'val_1' [ , 'val_2' [ , ... ] ]

指定使用对应的 CREATE <object>ALTER <object> 命令在 对象 上设置标签时,可以分配给标签的可能字符串值的逗号分隔列表。

此列表中的最大标签值数为 300。

默认值:NULL(允许所有字符串值,包括空字符串值,即 ' ')。

masking_policy_name [ , MASKING POLICY masking_policy_2_name , ... ]

指定可分配给标签的 掩码策略 的逗号分隔列表。

FORCE

在单个语句中将当前为标签设置的掩码策略替换为其他掩码策略。

请注意,如果已在标签上设置了相同 数据类型 的策略,则使用 FORCE 关键字将替换掩码策略。

如果当前未在标签上设置掩码策略,则指定此关键字无效。

有关详细信息,请参阅 替换标签上的掩码策略

COMMENT = 'string_literal'

指定标签的注释。

默认:无值

UNSET

指定要为标签取消设置的一个(或多个)属性和/或参数,这会将它们重置为默认值:

  • COMMENT

  • ALLOWED_VALUES

访问控制要求

用于执行此 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).

APPLY MASKING POLICY

账户

为标签分配和替换掩码策略需要全局 APPLY MASKING POLICY 权限。

请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

有关标签 DDL 和权限的其他详细信息,请参阅 管理标签

使用说明

  • 有关标签 DDL 授权的更多信息,请参阅 所需权限

  • 关于向标签分配一个或多个掩码策略:

    • 一个标签对于每种数据类型只能有一个掩码策略。

      例如,一个标签可以有一个用于 STRING 数据类型的策略,一个用于 NUMBER 数据类型的策略,依此类推。

    • 如果掩码策略已经保护了一列,并且在同一列上设置了具有掩码策略的标签,则 直接 分配给该列的掩码策略优先于分配给该标签的掩码策略。

    • 如果将掩码策略分配给标签,则无法 删除 标签,也无法删除掩码策略。

  • 关于复制,特别是基于标签的掩码策略,请参阅 策略复制注意事项

  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

cost_center 标签重命名为 cost_center_na,其中 na 指定北美。

ALTER TAG cost_center RENAME TO cost_center_na;
Copy
语言: 中文