ALTER PROJECTION POLICY¶
Substitui as regras existentes de política de projeção por novas regras ou um novo comentário e permite a renomeação de uma política de projeção.
Qualquer alteração feita nas regras de política entra em vigor quando a próxima consulta SQL que usar a política de projeção for executada.
- Consulte também:
Sintaxe¶
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
Parâmetros¶
name
Especifica o identificador para a política de projeção a ser alterada.
Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Para obter mais informações, consulte Requisitos para identificadores.
RENAME TO new_name
Especifica o novo identificador para a política de projeção; deve ser único para seu esquema. O novo identificador não pode ser usado se o identificador já estiver em vigor para uma política de projeção 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.
SET ...
Especifica uma ou mais propriedades a serem definidas para a política de projeção:
BODY -> expression
Expressão SQL que determina se a coluna deve ser projetada.
A expressão chama a função interna PROJECTION_CONSTRAINT para determinar se uma coluna deve ser projetada:
PROJECTION_CONSTRAINT(ALLOW => TRUE)
— Permite projetar a coluna à qual está vinculada a política de projeção.PROJECTION_CONSTRAINT(ALLOW => FALSE)
— Não permite projetar a coluna à qual está vinculada a política de projeção.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Especifica o nome da tag e o valor da cadeia de caracteres dela.
O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.
Para obter informações sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.
COMMENT = 'string_literal'
Adiciona um comentário ou substitui o comentário existente para a política de projeção.
Padrão: sem valor
UNSET ...
Especifica uma ou mais propriedades e/ou parâmetros a terem a definição cancelada, redefinindo-os para seus padrões, para a política de projeção:
TAG tag_name [ , tag_name ... ]
COMMENT
Ao redefinir uma propriedade/parâmetro, especificar somente o nome; especificar um valor para a propriedade retornará um erro.
Requisitos de controle de acesso¶
Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:
Privilégio |
Objeto |
Notas |
---|---|---|
OWNERSHIP |
Política de projeção |
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). |
Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.
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 DDL e privilégios da política de projeção, consulte Privilégios e comandos.
Notas de uso¶
Se você quiser atualizar uma política de projeção existente e precisar ver o definição atual da política, execute o comando DESCRIBE PROJECTION POLICY ou a função GET_DDL.
É proibido mover uma política de projeção para um esquema de acesso gerenciado (usando a sintaxe ALTER PROJECTIONPOLICY … RENAME TO), a menos que o proprietário da política de projeção (ou seja, a função que tem o privilégio OWNERSHIP na política de projeção) também seja o proprietário do esquema de destino.
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¶
Renomeie uma política de projeção:
ALTER PROJECTION POLICY mypolicy RENAME TO proj_policy_acctnumber;