SHOW CALLER GRANTS

Lista as concessões de chamador que estão sendo usadas para implementar os direitos restritos do chamador.

Sintaxe

SHOW CALLER GRANTS
{
{ ON <object_type> <object_name> | ON ACCOUNT }
| TO { ROLE | DATABASE ROLE }  <owner_name>
}
Copy

Parâmetros

ON object_type object_name ou . ON ACCOUNT

Especifica se deseja listar as concessões do chamador em um objeto específico ou listar todas as concessões de chamador que envolvem a conta.

Use a forma singular de object_type, por exemplo, TABLE ou WAREHOUSE.

TO ROLE <owner_name> ou . TO DATABASE ROLE <owner_name>

Especifica um proprietário de executável, que lista todas as concessões de chamador que foram concedidas a esse proprietário.

Saída

A saída do comando inclui as seguintes colunas, que descrevem as propriedades e metadados do objeto:

Coluna

Descrição

created_on

Data e hora em que a concessão de chamador foi concedida.

privilege

Privilégio com o qual os executáveis pertencentes a grantee_name podem ser executados.

granted_on

Tipo de objeto que está sujeito à concessão de chamador, independentemente de ter sido concedida diretamente em um objeto ou em todos os objetos desse tipo.

name

Se a concessão de chamador foi concedida diretamente em um objeto específico, especifica o nome do objeto.

is_inherited

Se TRUE, a concessão de chamador foi concedida a todos os objetos de um determinado tipo usando uma instrução GRANT INHERITED CALLER ou GRANT ALL INHERITED CALLER PRIVILEGES.

Se FALSE, a concessão de chamador foi concedida diretamente no objeto name.

inherited_from

Se a concessão de chamador foi concedida a todos os objetos de um determinado tipo usando uma instrução GRANT INHERITED CALLER ou GRANT ALL INHERITED CALLER PRIVILEGES, ela indica o nível em que foi concedida. ACCOUNT, DATABASE ou SCHEMA.

inherited_from_database

Se inherited_from for um banco de dados (incluindo um aplicativo ou pacote de aplicativos), especifique o nome do banco de dados. Se inherited_from for um esquema, especifica o nome do banco de dados com o esquema.

inherited_from_schema

Se inherited_from for um esquema, especifica o nome do esquema.

granted_to

Tipo de proprietário executável ao qual foi concedida a concessão de chamador. ROLE ou DATABASE ROLE.

grantee_name

Nome do proprietário do executável ao qual foi concedida a concessão de chamador.

Requisitos de controle de acesso

Qualquer pessoa pode executar o comando SHOW CALLER GRANTS TO … para listar as concessões de chamador que foram concedidas a um proprietário de executável específico.

A execução do comando SHOW CALLER GRANTS ON … requer o seguinte privilégio:

Privilégio

Objeto

Notas

Qualquer privilégio

Objeto especificado

Você precisa de pelo menos de um privilégio no objeto especificado no comando SHOW CALLER GRANTS.

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.

Notas de uso

  • Ao executar uma instrução SHOW CALLER GRANTS ON …, diferentes linhas da saída podem indicar coisas diferentes. Por exemplo, uma linha pode indicar que uma concessão de chamador foi atribuída diretamente a um objeto, enquanto outra linha indica que o objeto foi especificado com uma cláusula IN na instrução GRANT. Para obter mais informações, consulte Como listar concessões do chamador.

  • Quando um usuário executa SHOW CALLER GRANTS, os resultados contêm apenas objetos para os quais ele tem pelo menos um privilégio. Para obter mais informações, consulte Saída condicional.

  • 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

Liste as concessões do chamador que foram concedidas na tabela t1.

SHOW CALLER GRANTS ON TABLE t1;
Copy

Liste todas as concessões do chamador que foram concedidas para a conta atual. Isso inclui concessões diretamente na conta (GRANT CALLER … ON ACCOUNT) e concessões para todos os objetos em uma conta (GRANT INHERITED CALLER… IN ACCOUNT).

SHOW CALLER GRANTS ON ACCOUNT;
Copy

Liste todas as concessões do chamador que foram concedidas à função de banco de dados db.owner_role.

SHOW CALLER GRANTS TO DATABASE ROLE db.owner_role;
Copy