Categorias:

Funções do sistema

SYSTEM$GET_TAG_ON_CURRENT_COLUMN

Retorna o valor da cadeia de caracteres da tag atribuída à coluna com base na tag especificada ou NULL se uma tag não for atribuída à coluna especificada.

Quando o corpo de uma política de mascaramento ou política de projeção inclui esta função, o valor de uma tag atribuída a uma coluna pode determinar o valor de retorno da política atribuída a essa coluna.

Sintaxe

SYSTEM$GET_TAG_ON_CURRENT_COLUMN( '<tag_name>' )
Copy

Argumentos

'tag_name'

Identificador para a tag como uma cadeia de caracteres.

Por exemplo, se a tag for chamada cost_center, use 'cost_center' como argumento.

Notas de uso

  • Atualmente, essa função só pode ser usada em uma política de mascaramento ou em uma condição de política de projeção para avaliar dinamicamente o valor da cadeia de caracteres da tag definida em uma coluna.

    O Snowflake retorna um erro ao utilizar a função em uma consulta SELECT, uma política de acesso a linhas, uma exibição ou uma função definida pelo usuário (UDF).

  • Note que esta função se aplica a todos os objetos em forma de tabela (por exemplo, exibições).

  • A tag deve existir ao chamar esta função do sistema; caso contrário, Snowflake retorna a seguinte mensagem de erro:

    Tag '<tag_name>' does not exist or not authorized.
    
    Copy

Exemplos

Política de mascaramento

Para obter um exemplo contextual sobre como usar essa função com uma política de mascaramento, consulte Exemplo 2: proteção de dados da coluna com base no valor da cadeia de caracteres da tag da coluna.

Política de projeção

Quando a seguinte política de projeção é atribuída a uma coluna, o valor da tag tags.accounting_col nessa coluna deve ser public para projetar a coluna.

CREATE PROJECTION POLICY mypolicy
AS () RETURNS PROJECTION_CONSTRAINT ->
CASE
  WHEN SYSTEM$GET_TAG_ON_CURRENT_COLUMN('tags.accounting_col') = 'public'
    THEN PROJECTION_CONSTRAINT(ALLOW => true)
  ELSE PROJECTION_CONSTRAINT(ALLOW => false)
END;
Copy