Solicitação de privilégios globais dos consumidores

Este tópico descreve como os provedores podem configurar um Snowflake Native App para solicitar privilégios globais de um consumidor depois que o consumidor instala o aplicativo. Esses privilégios permitem que o Snowflake Native App execute tarefas na conta do consumidor, por exemplo, criar um warehouse ou um banco de dados.

Se um aplicativo precisar executar tarefas ou criar objetos fora do contexto do Snowflake Native App, o consumidor deverá conceder os privilégios para permitir que o aplicativo faça isso.

Fluxo de trabalho para solicitação de privilégios globais dos consumidores

O fluxo de trabalho a seguir descreve as etapas para configurar um Snowflake Native App para solicitar privilégios globais.

Nota

Consulte Como criar uma interface de usuário para solicitar privilégios e referências para obter informações sobre como criar uma interface de usuário que permite aos consumidores conceder privilégios usando Snowsight.

Para solicitar privilégios globais, um provedor realiza o seguinte ao desenvolver e publicar um Snowflake Native App:

  1. Determine os privilégios exigidos pelo aplicativo.

    Por exemplo, se um aplicativo precisar criar um banco de dados na conta do consumidor, o provedor precisará solicitar que o consumidor conceda o privilégio global CREATE DATABASE ao aplicativo.

    Consulte Privilégios que o provedor pode solicitar do consumidor para obter detalhes sobre os privilégios globais que um aplicativo pode solicitar.

  2. Adicione os privilégios necessários ao arquivo manifest.yml. Consulte Adição de uma solicitação de privilégio ao arquivo de manifesto para obter mais detalhes.

Depois de instalar o Snowflake Native App, o consumidor realiza o seguinte:

  1. Veja os privilégios globais exigidos pelo aplicativo. Consulte Visualização dos privilégios solicitados por um Snowflake Native App para obter mais informações.

  2. Conceda os privilégios globais no aplicativo. Consulte Concessão de privilégios a um aplicativo para obter mais informações.

Privilégios que o provedor pode solicitar do consumidor

O Snowflake Native App Framework permite que os provedores solicitem os seguintes privilégios globais na conta do consumidor:

  • EXECUTE TASK

  • EXECUTE MANAGED TASK

  • CREATE WAREHOUSE

  • MANAGE WAREHOUSES

  • CREATE DATABASE

Um provedor também podem solicitar que o consumidor conceda IMPORTED PRIVILEGES no banco de dados SNOWFLAKE para o aplicativo. Os consumidores só podem conceder esse privilégio usando comandos SQL. Consulte Concessão de privilégios a um aplicativo para obter mais detalhes. Este privilégio não pode ser concedido usando Snowsight.

Nota

A concessão de IMPORTED PRIVILEGES permite que o Snowflake Native App veja informações sobre uso e custos associados à conta do consumidor. Você deve garantir que os consumidores estejam cientes disso ao publicar seu Snowflake Native App.

Adição de uma solicitação de privilégio ao arquivo de manifesto

O exemplo a seguir mostra como adicionar o privilégio EXECUTE TASK ao arquivo manifest.yml:

privileges:
- EXECUTE TASK:
    description: "Privilege to run tasks within the consumer account"
Copy

Um provedor pode adicionar qualquer um dos privilégios suportados da mesma maneira.

Visualização dos privilégios solicitados por um Snowflake Native App

Quando um provedor especifica um privilégio no arquivo manifest.yml, as solicitações de privilégio são incluídas como parte do Snowflake Native App instalado. O consumidor pode visualizar as solicitações de privilégio após a instalação do aplicativo.

Para visualizar os privilégios globais exigidos por um aplicativo, execute o comando SHOW PRIVILEGES como mostrado no exemplo a seguir:

SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
Copy

Concessão de privilégios a um aplicativo

Depois de determinar os privilégios exigidos por Snowflake Native App, o consumidor deverá conceder esses privilégios ao aplicativo.

Para conceder a solicitação de privilégio global no exemplo acima, o consumidor executa o comando GRANT <privilégios> como mostrado no exemplo a seguir:

GRANT CREATE DATABASE ON ACCOUNT TO APPLICATION hello_snowflake_app;
Copy

Para conceder o privilégio IMPORT no banco de dados SNOWFLAKE, execute o seguinte comando:

GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO APPLICATION hello_snowflake_app;
Copy