Concessão de privilégios para funções definidas pelo usuário¶
Este tópico lista os privilégios mínimos necessários para objetos a fim de executar ações SQL específicas com uma UDF ou UDTF.
Neste tópico:
Concessão de privilégios para UDFs e UDTFs¶
Para executar ações SQL em uma UDF ou UDTF, a pessoa que executa a ação deve ter recebido uma função à qual foram concedidos os privilégios necessários. Essas ações SQL incluem:
Criar a função, por exemplo, com CREATE FUNCTION ou com a Snowpark API.
Ser proprietário da função para excluir, alterar e gerenciar o acesso à função, seja por meio do SQL ou da Snowpark API.
Chamar a função, seja com SQL ou com a Snowpark API.
A função deve receber os privilégios para os objetos associados à função, incluindo o banco de dados e o esquema, e (se necessário) um estágio que contenha as dependências da função.
Para conceder a uma função os privilégios para um objeto, use uma instrução GRANT.
O código no exemplo a seguir concede a my_role
o privilégio USAGE para a função my_java_udf
.
GRANT USAGE ON FUNCTION my_java_udf(number, number) TO my_role;
Criação de UDFs ou UDTFs¶
Criar, gerenciar e executar uma UDF ou UDTF requer uma função com um mínimo dos seguintes privilégios:
Objeto |
Privilégios |
Notas |
---|---|---|
Banco de dados |
USAGE |
|
Esquema |
USAGE, CREATE FUNCTION |
|
Estágio |
USAGE (estágio externo) ou READ (estágio interno) |
Necessário se a função depende ou lê a partir de arquivos em um estágio. Isso inclui os seguintes arquivos preparados:
|
Propriedade de UDFs ou UDTFs¶
Depois que uma UDF ou UDTF é criada, o proprietário da função (ou seja, uma pessoa com a função que tem o privilégio OWNERSHIP para a função) deve ter um mínimo dos seguintes privilégios:
Objeto |
Privilégio |
Notas |
---|---|---|
Banco de dados |
USAGE |
|
Esquema |
USAGE |
|
Estágio |
USAGE (estágio externo) ou READ (estágio interno) |
Necessário se a função depende ou lê a partir de arquivos em um estágio. Isso inclui os seguintes arquivos preparados:
|
Função |
OWNERSHIP |
Chamada de UDFs ou UDTFs¶
Uma função que chama uma UDF ou UDTF deve ter um mínimo dos seguintes privilégios:
Objeto |
Privilégio |
Notas |
---|---|---|
Banco de dados |
USAGE |
|
Esquema |
USAGE |
Esquema que contém os objetos em nível de esquema nesta tabela. Se os objetos estiverem contidos em múltiplos esquemas, o privilégio USAGE é exigido em cada um deles. |
Estágio |
USAGE (estágio externo) ou READ (estágio interno) |
Necessário se a função depende ou lê a partir de arquivos em um estágio. Isso inclui os seguintes arquivos preparados:
|
Função |
USAGE |
Obrigatório quando outra pessoa que não o proprietário da função chama a função. USAGE para a função deve ser concedido a uma função que é atribuída a uma pessoa que chamará a função. |