Categorias:

Information Schema , Funções de tabela

POLICY_REFERENCES

Retorna uma linha para cada objeto que tem a política especificada atribuída ao objeto ou retorna uma linha para cada política atribuída ao objeto especificado.

Consulte também: Exibição POLICY_REFERENCES (Exibição Account Usage)

Sintaxe

Somente para objetos de política de redes:

POLICY_REFERENCES(
      POLICY_NAME => '<string>' ,
      POLICY_KIND => 'NETWORK_POLICY'
      )
Copy

Para outros objetos de política:

POLICY_REFERENCES(
      POLICY_NAME => '<string>'
      )
Copy

Para todos os objetos de política:

POLICY_REFERENCES(
    REF_ENTITY_NAME => '<string>' ,
    REF_ENTITY_DOMAIN => '<string>'
    )
Copy

Argumentos

POLICY_NAME => 'string'

Especifica o nome da política.

  • O nome completo da política deve ser delimitado por aspas simples.

  • Se o nome da política diferenciar letras maiúsculas e minúsculas ou incluir quaisquer caracteres ou espaços especiais, as aspas duplas são necessárias para processar o caso/caracteres. As aspas duplas devem ser incluídas dentro das aspas simples (ou seja, '"<nome_política>"').

Atualmente, Snowflake oferece suporte às seguintes políticas ao especificar o nome da política como um argumento:

POLICY_KIND => 'NETWORK_POLICY'

Use este argumento somente quando o valor POLICY_NAME for uma política de redes. Não use esse argumento ao especificar o nome de outros tipos de políticas.

REF_ENTITY_NAME => 'string'

O nome do objeto, como nome da tabela, nome da exibição, nome da tabela externa ou nome de usuário, no qual a política está definida.

  • O nome completo do objeto deve ser delimitado por aspas simples.

  • Se o nome da objeto diferenciar letras maiúsculas e minúsculas ou incluir quaisquer caracteres ou espaços especiais, as aspas duplas são necessárias para processar o caso/caracteres. As aspas duplas devem ser incluídas dentro das aspas simples (ou seja, '"<nome_tabela>"').

REF_ENTITY_DOMAIN => 'string'

O tipo de objeto no qual a política está definida.

Se o objeto for uma tabela externa, use 'TABLE' como valor de argumento.

Se o objeto for uma exibição materializada, use 'VIEW' como valor do argumento.

Os domínios com suporte são:

  • 'ACCOUNT'

  • 'INTEGRATION'

  • 'TABLE'

  • 'TAG'

  • 'USER'

  • 'VIEW'

Retornos

A função retorna as seguintes colunas:

Coluna

Tipo de dados

Descrição

POLICY_DB

VARCHAR

O banco de dados no qual a política é definida.

POLICY_SCHEMA

VARCHAR

O esquema no qual a política é definida.

POLICY_NAME

VARCHAR

O nome da política.

POLICY_KIND

VARCHAR(17)

O tipo de política no Snowflake.

REF_DATABASE_NAME

VARCHAR

O nome do banco de dados que contém um objeto ao qual o objeto consultado faz referência.

REF_SCHEMA_NAME

VARCHAR

O nome do esquema que contém um objeto ao qual o objeto consultado faz referência.

REF_ENTITY_NAME

VARCHAR

O nome do objeto (isto é, nome_tabela, nome_exibição, nome_tabela_externa) no qual a política é definida.

REF_ENTITY_DOMAIN

VARCHAR

O tipo de objeto (ou seja, tabela, exibição) no qual a política é definida.

REF_COLUMN_NAME

VARCHAR

O nome da coluna na qual a política é definida.

REF_ARG_COLUMN_NAMES

VARCHAR

Retorna NULL para linhas no resultado da consulta na qual é definida uma política de mascaramento.

TAG_DATABASE

VARCHAR

O nome do banco de dados contendo a tag que tem uma política atribuída à tag ou NULL se uma política não for atribuída à tag.

TAG_SCHEMA

VARCHAR

O nome do esquema contendo a tag que tem uma política atribuída à tag ou NULL se uma política não for atribuída à tag.

TAG_NAME

VARCHAR

O nome da tag que tem uma política atribuída a ela ou NULL se uma política não for atribuída à tag.

POLICY_STATUS

VARCHAR

Especifica o status da política, que pode ser um dos quatro valores possíveis: ACTIVE, MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN, COLUMN_IS_MISSING_FOR_SECONDARY_ARG ou COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG.

Observe o seguinte para a coluna POLICY_STATUS:

ACTIVE

Especifica que a coluna (isto é, REF_COLUMN_NAME) só é associada a uma única política por uma tag.

MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN

Especifica que múltiplas políticas de mascaramento são atribuídas à mesma coluna.

COLUMN_IS_MISSING_FOR_SECONDARY_ARG

Especifica que a política (isto é, POLICY_NAME) é uma política de mascaramento condicional e a tabela (isto é, REF_ENTITY_NAME) não tem uma coluna com o mesmo nome.

COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG

Especifica que a política é uma política de mascaramento condicional e a tabela tem uma coluna com o mesmo nome, mas um tipo de dados diferente do tipo de dados na assinatura da política de mascaramento.

Notas de uso

  • Os resultados são retornados com base nos privilégios concedidos à função que executa a consulta:

    • Se a função tiver o privilégio global APPLY MASKING POLICY, o Snowflake retorna todas as associações de política de mascaramento no resultado da consulta.

    • Se a função tiver o privilégio global APPLY ROW ACCESS POLICY, o Snowflake retorna todas as associações de políticas de acesso a linhas no resultado da consulta.

    • Se a função tiver o privilégio APPLY em uma determinada política (por exemplo, APPLY em MASKING POLICY), o Snowflake retornará as associações dessa política somente para objetos que são de propriedade da função que executa a consulta.

    • Se a função tiver um dos privilégios globais APPLY ou o privilégio OWNERSHIP na política, mas não OWNERSHIP na tabela ou exibição (por exemplo, SELECT na tabela), o Snowflake não mostrará as associações de políticas no resultado da consulta.

    • Se a função não tiver nenhuma permissão de política mas tiver o privilégio OWNERSHIP na tabela, o Snowflake retornará uma mensagem de erro e não mostrará as associações de políticas.

  • Ao chamar uma função de tabela do Information Schema, a sessão deve ter um esquema INFORMATION_SCHEMA em uso ou a função deve usar o nome do objeto totalmente qualificado. Para obter mais detalhes, consulte Snowflake Information Schema.

  • Escolha uma variação de sintaxe para executar uma consulta. A mistura de argumentos resulta em erros e falhas nas consultas.

    Os argumentos ref_entity_name e ref_entity_domain devem ser incluídos juntos, caso contrário a consulta falha.

  • O Snowflake retorna erros se o nome do objeto especificado não existir ou se o operador da consulta não estiver autorizado a visualizar qualquer política no objeto. O Snowflake pode retornar um conjunto de resultados de associações de políticas se o operador for autorizado a visualizar um subconjunto das associações de políticas. Os tipos de objetos não suportados listados como ref_entity_domain (por exemplo, 'stream') também retornam erros.

  • O Snowflake não retorna um conjunto de resultados se o operador da consulta não tiver os privilégios APPLY ou OWNERSHIP sobre a política.

Exemplos

Retornar uma linha para cada objeto, como tabela ou exibição, que tenha a política de mascaramento chamada ssn_mask definida na coluna:

use database my_db;
use schema information_schema;
select *
  from table(information_schema.policy_references(policy_name => 'my_db.my_schema.ssn_mask'));
Copy

Devolver uma linha para cada política atribuída à tabela chamada my_table:

use database my_db;
use schema information_schema;
select *
  from table(information_schema.policy_references(ref_entity_name => 'my_db.my_schema.my_table', ref_entity_domain => 'table'));
Copy