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;
Copy

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.