SHOW ROW ACCESS POLICIES¶
Lista as políticas de acesso a linhas para as quais você tem privilégios de acesso. Retorna informações que incluem a data de criação, nomes do banco de dados e esquemas, proprietário e quaisquer comentários disponíveis.
- Consulte também:
Sintaxe¶
SHOW ROW ACCESS POLICIES [ LIKE '<pattern>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
APPLICATION <application_name> |
APPLICATION PACKAGE <application_package_name> |
}
]
Parâmetros¶
LIKE 'pattern'
Opcionalmente, filtra a saída do comando pelo nome do objeto. O filtro utiliza correspondência de padrão que não diferencia maiúsculas e minúsculas, com suporte para caracteres curinga SQL (
%
e_
).Por exemplo, os seguintes padrões retornam os mesmos resultados:
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
. padrão: sem valor (nenhuma filtragem é aplicada à saída).
LIMIT rows [ FROM 'name_string' ]
Opcionalmente, limita o número máximo de linhas retornadas, ao mesmo tempo em que permite a «paginação» dos resultados. O número real de linhas retornadas pode ser menor que o limite especificado. Por exemplo, o número de objetos existentes é menor que o limite especificado.
A subcláusula opcional
FROM 'name_string'
serve efetivamente como um “cursor” para os resultados. Isso permite obter o número especificado de linhas seguindo a primeira linha cujo nome do objeto corresponde à cadeia de caracteres especificada:A cadeia de caracteres deve ser delimitada entre aspas simples e há distinção entre maiúsculas e minúsculas.
A cadeia de caracteres não precisa incluir o nome completo do objeto; também é permitido usar nomes parciais.
Padrão: nenhum valor (nenhum limite é aplicado à saída)
Nota
Para comandos SHOW que oferecem suporte às cláusulas
FROM 'name_string'
eSTARTS WITH 'name_string'
, você pode combinar ambas as cláusulas na mesma instrução. No entanto, ambas as condições devem ser cumpridas ou elas se cancelam mutuamente e nenhum resultado é retornado.Além disso, os objetos são devolvidos em ordem lexicográfica por nome, portanto
FROM 'name_string'
só retorna linhas com um valor lexicográfico maior que as linhas retornadas porSTARTS WITH 'name_string'
.Por exemplo:
... STARTS WITH 'A' LIMIT ... FROM 'B'
não retornaria nenhum resultado.... STARTS WITH 'B' LIMIT ... FROM 'A'
não retornaria nenhum resultado.... STARTS WITH 'A' LIMIT ... FROM 'AB'
retornariam resultados (se alguma linha corresponder às cadeias de caracteres de entrada).
[ IN ... ]
Opcionalmente, especifica o escopo do comando. Especifique um dos seguintes:
ACCOUNT
Retorna registros para toda a conta.
DATABASE
, .DATABASE db_name
Retorna registros do banco de dados atual em uso ou de um banco de dados especificado (
db_name
).Se você especificar
DATABASE
semdb_name
e nenhum banco de dados estiver em uso, a palavra-chave não terá efeito sobre a saída.SCHEMA
, .SCHEMA schema_name
, .schema_name
Retorna registros do esquema atual em uso ou de um esquema especificado (
schema_name
).SCHEMA
é opcional se um banco de dados estiver em uso ou se você especificar oschema_name
totalmente qualificado (por exemplo,db.schema
).Se nenhum banco de dados estiver em uso, a especificação
SCHEMA
não terá efeito sobre a saída.
APPLICATION application_name
, .APPLICATION PACKAGE application_package_name
Retorna registros para o Snowflake Native App ou pacote de aplicativo nomeado.
Padrão: depende se a sessão tem ou não um banco de dados em uso no momento:
Banco de dados:
DATABASE
é o padrão (ou seja, o comando retorna os objetos nos quais você tem privilégios para visualizar no banco de dados).Sem banco de dados:
ACCOUNT
é o padrão (ou seja, o comando retorna os objetos que você tem privilégios de visualização em sua conta).
Requisitos de controle de acesso¶
Uma função usada para executar esse comando SQL deve ter pelo menos um dos seguintes privilégios, no mínimo:
Privilégio |
Objeto |
Notas |
---|---|---|
APPLY ROW ACCESS POLICY |
Conta |
|
APPLY |
Política de acesso a linhas |
|
OWNERSHIP |
Política de acesso a linhas |
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). |
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.
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 privilégios e DDL da política de acesso a linhas, consulte Gerenciamento de políticas de acesso a linhas.
Notas de uso¶
O comando não precisa de um warehouse em funcionamento para ser executado.
O valor de
LIMIT rows
não pode exceder10000
. SeLIMIT rows
for omitido, o comando resulta em um erro se o conjunto de resultados for maior que 10.000 linhas.Para visualizar os resultados para os quais existem mais de 10.000 registros, incluir
LIMIT rows
ou consultar a exibição correspondente no Snowflake Information Schema.
Para pós-processar a saída deste comando, você pode usar a função RESULT_SCAN, que trata a saída como uma tabela que pode ser consultada.
Exemplos¶
O exemplo seguinte é representativo de um usuário com a função ACCOUNTADMIN executando a consulta.
SHOW ROW ACCESS POLICIES;---------------------------------+------+---------------+-------------+-------------------+--------------+---------+---------+-----------------+ created_on | name | database_name | schema_name | kind | owner | comment | options | owner_role_type | ---------------------------------+------+---------------+-------------+-------------------+--------------+---------+---------+-----------------+ Fri, 23 Jun 1967 00:00:00 -0700 | P1 | RLS_AUTHZ_DB | S_D_1 | ROW_ACCESS_POLICY | ACCOUNTADMIN | | "" | ROLE | Fri, 23 Jun 1967 00:00:00 -0700 | P2 | RLS_AUTHZ_DB | S_D_2 | ROW_ACCESS_POLICY | ACCOUNTADMIN | | "" | ROLE | ---------------------------------+------+---------------+-------------+-------------------+--------------+---------+---------+-----------------+
O exemplo a seguir é representativo de uma função que não tem USAGE no esquema pai em que há políticas de acesso a linhas e não é a função ACCOUNTADMIN.
SHOW ROW ACCESS POLICIES; ---------------------------------+------+---------------+-------------+-------------------+--------------+---------+---------+-----------------+ created_on | name | database_name | schema_name | kind | owner | comment | options | owner_role_type | ---------------------------------+------+---------------+-------------+-------------------+--------------+---------+---------+-----------------+