ALTER TAG¶
Modifica as propriedades de uma tag existente, incluindo a renomeação da tag e a definição de uma política de mascaramento em uma tag.
Qualquer alteração feita na tag entra em vigor quando a próxima consulta SQL que usar a tag for executada.
- Consulte também:
Sintaxe¶
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> , ... ]
Parâmetros¶
name
Identificador para a tag. Atribuir o valor da tag de cadeia de caracteres em um objeto usando uma instrução CREATE <objeto> ou uma instrução ALTER <objeto>.
O valor do identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo “Meu objeto”). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Para obter mais detalhes, consulte Requisitos para identificadores
RENAME TO new_name
Especifica o novo identificador para a tag; deve ser único para seu esquema. O novo identificador não pode ser usado se o identificador já estiver em vigor para uma tag diferente.
Para obter mais detalhes, consulte Requisitos para identificadores.
Você pode mover o objeto para um banco de dados e/ou esquema diferente enquanto opcionalmente renomeia o objeto. Para isso, especifique um valor qualificado
new_name
que inclua o novo banco de dados e/ou nome do esquema no formuláriodb_name.schema_name.object_name
ouschema_name.object_name
, respectivamente.Nota
O banco de dados e/ou esquema de destino já deve existir. Além disso, um objeto com o mesmo nome não pode já existir no banco de dados de destino; caso contrário, a instrução retorna um erro.
É proibido mover um objeto para um esquema de acesso gerenciado a menos que o proprietário do objeto (ou seja, a função que tem o privilégio OWNERSHIP sobre o objeto) também possua o esquema de destino.
ALLOWED_VALUES 'val_1' [ , 'val_2' [ , ... ] ]
Especifica uma lista separada por vírgula dos possíveis valores de cadeia de caracteres que podem ser atribuídos à tag quando a tag é definida em um objeto usando o comando correspondente CREATE <objeto> ou ALTER <objeto>.
O número máximo de valores de tag nesta lista é 300.
Se uma tag estiver configurada para se propagar automaticamente para objetos de destino, a ordem dos valores na lista permitida pode afetar a forma como os conflitos são resolvidos. Para obter mais informações, consulte Conflitos de propagação de tags.
Padrão: NULL (todos os valores de cadeia caracteres são permitidos, inclusive um valor de cadeia de caracteres vazio (ou seja,
' '
)).PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
Especifica que a tag será propagada automaticamente dos objetos de origem para os objetos de destino. Você pode configurar a tag para se propagar quando houver uma dependência de objeto, uma movimentação de dados ou ambas.
As alterações nesse parâmetro não se propagam automaticamente para os objetos de destino. Essas alterações não têm efeito sobre as tags que foram aplicadas anteriormente aos objetos de destino como parte da propagação de tags.
Os valores possíveis são:
ON_DEPENDENCY_AND_DATA_MOVEMENT
Propaga a tag quando há uma dependência de objeto ou movimentação de dados.
ON_DEPENDENCY
Propaga a tag para dependências de objetos, mas não para movimentação de dados.
ON_DATA_MOVEMENT
Propaga a tag quando há movimentação de dados, mas não para dependências de objetos.
ON_CONFLICT = { 'string' | ALLOWED_VALUES_SEQUENCE }
Especifica o que acontece quando há um conflito entre os valores das tags propagadas.
Se você não definir esse parâmetro e houver um conflito, o valor da tag será definido como a cadeia de caracteres
CONFLICT
.As alterações nesse parâmetro não se propagam automaticamente para os objetos de destino. Essas alterações não têm efeito sobre as tags que foram aplicadas anteriormente aos objetos de destino como parte da propagação de tags.
Os valores possíveis são:
'string'
Quando há um conflito, o valor da tag é definido como a cadeia de caracteres especificada.
ALLOWED_VALUES_SEQUENCE
A ordem dos valores na propriedade ALLOWED_VALUES da tag determina qual valor é usado quando há um conflito. Por exemplo, suponha que você tenha criado uma tag com a seguinte instrução:
CREATE TAG my_tag ALLOWED_VALUES 'blue', 'red' PROPAGATE = ON_DEPENDENCY;
Se houver um conflito, o valor de
my_tag
seráblue
porque ele vem antes dered
na lista de valores permitidos.
Padrão: definir o valor da tag como
CONFLICT
.MASKING POLICY masking_policy_name [ , MASKING POLICY masking_policy_2_name , ... ]
Especifica uma lista separada por vírgulas de políticas de mascaramento que podem ser atribuídas à tag.
FORCE
Substitui uma política de mascaramento que está atualmente definida em uma tag por uma política de mascaramento diferente em uma única instrução.
Note que o uso da palavra-chave FORCE substitui a política de mascaramento quando uma política do mesmo tipo de dados já está definida na tag.
Se uma política de mascaramento não estiver definida atualmente na tag, a especificação dessa palavra-chave não terá efeito.
Para obter mais detalhes, consulte Substituição de uma política de mascaramento em uma tag.
COMMENT = 'string_literal'
Especifica um comentário para a tag.
Padrão: sem valor
UNSET
Especifica uma (ou mais) propriedades e/ou parâmetros a serem removidos da definição para a tag, que os redefine aos padrões:
ALLOWED_VALUES
PROPAGATE
ON_CONFLICT
COMMENT
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
Notas |
---|---|---|
OWNERSHIP |
Tag |
Este privilégio é necessário para modificar as propriedades da tag (por exemplo, comentário, valores permitidos). 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 |
Conta |
A atribuição e substituição de uma política de mascaramento em uma tag requer o privilégio global APPLY MASKING POLICY. |
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Para detalhes adicionais sobre a tag DDL e privilégios, consulte Privilégios de controle de acesso.
Notas de uso¶
Para obter mais informações sobre a autorização da tag DDL, consulte os privilégios obrigatórios.
Em relação à atribuição de uma ou mais políticas de mascaramento a uma tag:
Uma tag pode ter apenas uma política de mascaramento por tipo de dados.
Por exemplo, uma tag pode ter uma política para o tipo de dados STRING, uma política para o tipo de dados NUMBER, e assim por diante.
Se uma política de mascaramento já proteger uma coluna e a tag com uma política de mascaramento for definida na mesma coluna, a política de mascaramento diretamente atribuída à coluna tem precedência sobre a política de mascaramento atribuída à tag.
Uma tag não pode ser descartada se uma política de mascaramento for atribuída à tag, nem a política de mascaramento pode ser descartada se a política de mascaramento for atribuída a uma tag.
Quanto à replicação, particularmente com políticas de mascaramento baseadas em tags, consulte considerações sobre replicação de políticas.
Em relação aos metadados:
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
Exemplos¶
Renomear a tag cost_center
como cost_center_na
, onde na
especifica a América do Norte.
ALTER TAG cost_center RENAME TO cost_center_na;