- Categorias:
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¶
POLICY_REFERENCES(
POLICY_NAME => '<string>' )
POLICY_REFERENCES(
REF_ENTITY_NAME => '<string>' ,
REF_ENTITY_DOMAIN => '<string>'
)
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:
REF_ENTITY_NAME => 'string'
O nome do objeto (isto é, nome_tabela, nome_exibição, nome_tabela_externa, nome_usuário) no qual a política é 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 (ou seja, tabela, exibição, usuário) no qual a política é definida.
Se o objeto for uma tabela externa, use
'table'
como argumento.
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
eref_entity_domain
devem ser incluídos juntos, caso contrário a consulta falha.Esta função não oferece suporte à sintaxe para determinar se uma política de senhas ou sessão é definida para um usuário específico. Em outras palavras, o uso da sintaxe com os argumentos
REF_ENTITY_NAME = 'jsmith'
eREF_ENTITY_DOMAIN = 'user'
não é suportado.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.
Saída¶
A função retorna as seguintes colunas:
Coluna |
Tipo de dados |
Descrição |
---|---|---|
POLICY_DB |
TEXT |
O banco de dados no qual a política é definida. |
POLICY_SCHEMA |
TEXT |
O esquema no qual a política é definida. |
POLICY_NAME |
TEXT |
O nome da política. |
POLICY_KIND |
TEXT |
O tipo de política no Snowflake. |
REF_DATABASE_NAME |
TEXT |
O nome do banco de dados que contém um objeto ao qual o objeto consultado faz referência. |
REF_SCHEMA_NAME |
TEXT |
O nome do esquema que contém um objeto ao qual o objeto consultado faz referência. |
REF_ENTITY_NAME |
TEXT |
O nome do objeto (isto é, nome_tabela, nome_exibição, nome_tabela_externa) no qual a política é definida. |
REF_ENTITY_DOMAIN |
TEXT |
O tipo de objeto (ou seja, tabela, exibição) no qual a política é definida. |
REF_COLUMN_NAME |
TEXT |
O nome da coluna na qual a política é definida. |
REF_ARG_COLUMN_NAMES |
ARRAY |
Retorna NULL para linhas no resultado da consulta na qual é definida uma política de mascaramento. |
TAG_DATABASE |
TEXT |
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 |
TEXT |
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 |
TEXT |
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 |
TEXT |
Especifica o status da política, que pode ser um dos quatro valores possíveis: |
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.
Exemplos¶
Retornar uma linha para cada objeto (ou seja, 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'));
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'));