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 <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
参数¶
name
标签的标识符。使用 CREATE <object> 语句或 ALTER <object> 语句为 对象 分配标签字符串值。
标识符值必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如 "My object")。放在双引号内的标识符也区分大小写。
有关更多详细信息,请参阅 标识符要求
RENAME TO new_name
指定标签的新标识符;对于您的架构必须唯一。如果新标识符已用于其他标签,则不能使用该标识符。
有关更多详细信息,请参阅 标识符要求。
可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定
new_name
值,该值分别以db_name.schema_name.object_name
或schema_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
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
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;