Solicitação de privilégios em uma conta de consumidor¶
Este tópico fornece informações gerais sobre como os provedores podem solicitar privilégios depois que um consumidor instala um Snowflake Native App.
Sobre privilégios e referências em um Snowflake Native App¶
Em um Snowflake Native App simples, todos os objetos necessários são criados dentro do objeto APPLICATION quando o script de configuração é executado durante a instalação. Neste contexto, todos os objetos exigidos por um Snowflake Native App são criados e acessíveis no aplicativo instalado. O consumidor não é obrigado a conceder nenhum privilégio ao Snowflake Native App. Todos os privilégios necessários exigidos são gerenciados usando as funções do aplicativo.
No entanto, um Snowflake Native App mais complexo pode precisar criar novos objetos ou acessar objetos existentes na conta do consumidor que estão fora do objeto APPLICATION criado na conta do consumidor. Nesses contextos, o consumidor deve conceder os privilégios necessários para criar ou acessar esses objetos.
O Snowflake Native App Framework permite que os provedores façam o seguinte:
Verifique os privilégios no nível da conta na conta do consumidor.
Solicite privilégios de nível de conta para executar tarefas, por exemplo, criar um banco de dados.
Solicite privilégios de nível de objeto usando referências.
Os provedores podem criar um Snowflake Native App para solicitar acesso a uma conta de consumidor solicitando o seguinte:
- Privilégios globais
Inclui privilégios que permitem que o Snowflake Native App execute tarefas na conta do consumidor. Consulte Privilégios que o provedor pode solicitar do consumidor para obter detalhes.
- Referências
Permita que Snowflake Native App acesse objetos que já existem na conta do consumidor, mas não estão no objeto APPLICATION. O provedor define as referências exigidas pelo Snowflake Native App. Após a instalação do aplicativo, o consumidor associa um objeto em sua conta ao aplicativo, fornecendo o nome e o esquema do objeto necessário.
As referências permitem que o provedor escreva o código usando um nome lógico para um objeto, o torna mais fácil escrever o código sem controlar o nome do objeto e seu esquema ou banco de dados pai.
Como um consumidor concede acesso ao Snowflake Native App¶
Para cada verificação ou solicitação executada por Snowflake Native App, um consumidor deve conceder os privilégios necessários para permitir que o aplicativo execute essas ações. Há duas maneiras de um consumidor conceder esses privilégios a um Snowflake Native App:
O provedor usa um SDK fornecido pelo Snowflake Native App Framework para criar uma interface de usuário como um aplicativo Streamlit. O aplicativo Streamlit permite que o consumidor conceda os privilégios necessários em Snowsight. Essa abordagem exige que o provedor execute um trabalho adicional para implementar a interface, mas otimiza a experiência do consumidor.
O provedor solicita que o consumidor execute manualmente os comandos SQL para conceder os privilégios necessários após instalar o Snowflake Native App. Essa abordagem exige que o provedor notifique ao consumidor quais instruções GRANT <privilégios> ele deve executar.
O Snowflake Native App pode não funcionar até que o consumidor execute os comandos SQL. Essa abordagem exige uma comunicação adicional entre o provedor e o consumidor.