CREATE PROJECTION POLICY

Cria uma nova política de projeção no esquema atual/especificado ou substitui uma política de projeção existente.

Depois de criar uma política de projeção, aplique-a a uma coluna da tabela usando um comando ALTER TABLE … ALTER COLUMN ou a uma coluna de exibição usando o comando ALTER VIEW.

Consulte também:

Referência DDL da política de projeção

Neste tópico:

Sintaxe

CREATE [ OR REPLACE ] PROJECTION POLICY [ IF NOT EXISTS ] <name>
  AS () RETURNS PROJECTION_CONSTRAINT -> <body>
  [ COMMENT = '<string_literal>' ]
Copy

Parâmetros

name

Identificador da política de projeção; deve ser único para seu esquema.

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, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

body

Expressão SQL que determina se uma coluna deve ser projetada.

A expressão chama a função interna PROJECTION_CONSTRAINT para permitir ou impedir a projeção de uma coluna:

  • 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.

COMMENT = 'string_literal'

Adiciona um comentário ou substitui um comentário existente para a política de projeção.

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

CREATE PROJECTION POLICY

Esquema

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.

  • 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

Não permitir projetar uma coluna:

CREATE OR REPLACE PROJECTION POLICY do_not_project AS ()
  RETURNS PROJECTION_CONSTRAINT ->
  PROJECTION_CONSTRAINT(ALLOW => false);
Copy

Projete uma coluna para a função personalizada analyst; caso contrário, não projete a coluna:

CREATE OR REPLACE PROJECTION POLICY project_analyst_only AS ()
  RETURNS PROJECTION_CONSTRAINT ->
    CASE
      WHEN CURRENT_ROLE() = 'ANALYST'
        THEN PROJECTION_CONSTRAINT(ALLOW => true)
      ELSE PROJECTION_CONSTRAINT(ALLOW => false)
    END;
Copy