Concessão de acesso a um Snowflake Native App¶
Este tópico descreve como um consumidor pode permitir que o Snowflake Native App crie e acesse objetos em sua conta. Isto inclui conceder os privilégios solicitados por um aplicativo ou permitir o acesso a objetos existentes usando referências.
Sobre os privilégios e referências solicitados por um aplicativo¶
Em um Snowflake Native App simples, todos os objetos necessários pelo aplicativo são criados dentro do objeto APPLICATION quando o script de configuração é executado durante a instalação. Todos os objetos exigidos pelo aplicativo são criados e acessados no aplicativo instalado. O consumidor não precisa realizar nenhuma ação em sua conta.
No entanto, alguns aplicativos podem solicitar que o consumidor execute os seguintes tipos de ações em sua conta:
Criar um banco de dados ou warehouse.
Executar tarefas.
Acessar objetos existentes, por exemplo, uma tabela.
Existem dois tipos de acesso que um Snowflake Native App pode solicitar:
Privilégios que permitem que o aplicativo execute algumas operações no nível da conta. Um aplicativo pode solicitar os seguintes privilégios globais:
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
MANAGE WAREHOUSES
CREATE DATABASE
Alguns aplicativos também podem solicitar o privilégio IMPORTED PRIVILEGES no banco de dados SNOWFLAKE. Consulte Concessão do privilégio IMPORTED PRIVILEGES no banco de dados SNOWFLAKE para obter detalhes.
Referências que permitem que o aplicativo acesse objetos que já existem na conta do consumidor e estão fora do objeto APPLICATION. Um provedor define as referências exigidas pelo aplicativo no arquivo
manifest.yml
.Após instalar o aplicativo, o consumidor pode autorizar o acesso a um objeto criando uma referência que associa o objeto ao aplicativo.
Um aplicativo pode solicitar acesso aos seguintes tipos de objetos e seus privilégios correspondentes:
Tipo de objeto
Privilégios permitidos
TABLE
SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES
VIEW
SELECT, REFERENCES
EXTERNAL TABLE
SELECT, REFERENCES
FUNCTION
USAGE
PROCEDURE
USAGE
WAREHOUSE
MODIFY, MONITOR, USAGE, OPERATE
API INTEGRATION
USAGE
Um consumidor pode aprovar essas solicitações usando Snowsight ou executando os comandos SQL conforme descrito nas seções a seguir.
Nota
Se você não conceder os privilégios solicitados ou não associar referências no objeto solicitado ao aplicativo, partes do aplicativo poderão não funcionar corretamente.
Gerenciamento de solicitações de acesso usando o Snowsight¶
Se um provedor implementar uma interface de usuário em um Snowflake Native App, um consumidor poderá realizar o seguinte usando Snowsight.
Visualize e conceda privilégios globais.
Autorize o acesso a objetos existentes na conta do consumidor.
Concessão de privilégios globais¶
Para conceder privilégios ou criar referências após a instalação de um aplicativo, faça o seguinte:
Entre em Snowsight.
No menu de navegação, selecione Data Products » Apps.
Selecione o aplicativo.
Selecione o ícone Security na barra de ferramentas.
As permissões de nível de conta solicitadas pelo aplicativo aparecem em Account level privileges
Na seção Account-level privileges, selecione Review e, em seguida, alterne o controle deslizante para cada privilégio que deseja conceder.
Selecione Save.
Como revogar privilégios e acesso a objetos¶
Para revogar privilégios ou remover acesso a objetos, faça o seguinte:
Entre em Snowsight.
No menu de navegação, selecione Data Products » Apps.
Selecione o aplicativo.
Selecione o ícone Security na barra de ferramentas.
Para revogar um privilégio global, selecione o botão Edit e, em seguida, alterne o controle deslizante para o privilégio que deseja revogar.
Para revogar o acesso de um objeto específico, selecione o botão Delete e, em seguida, selecione Revoke Privilege.
Nota
Revogar privilégios ou remover o acesso de objetos pode tornar o aplicativo instável ou parar de funcionar.
Gerenciamento de privilégios para um aplicativo usando comandos SQL¶
Se o desenvolvedor do aplicativo não implementar uma interface para conceder privilégios, você deverá gerenciar as solicitações de acesso do aplicativo usando comandos SQL.
Visualização dos privilégios solicitados por um aplicativo¶
Quando um provedor especifica os privilégios exigidos pelo aplicativo, a solicitação de privilégio é incluída como parte do aplicativo instalado. Você pode visualizar esses privilégios após instalar o aplicativo.
Para visualizar os privilégios exigidos por um aplicativo, execute o comando SHOW PRIVILEGES como mostrado no exemplo a seguir:
SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
Concessão de privilégios para um Snowflake Native App¶
Depois que um consumidor determina os privilégios solicitados por um aplicativo, ele pode conceder esses privilégios ao aplicativo.
Por exemplo, para conceder o privilégio EXECUTE TASK para um aplicativo, execute o comando GRANT PRIVILEGE como mostrado no exemplo a seguir:
GRANT EXECUTE TASK ON ACCOUNT TO APPLICATION hello_snowflake_app;
Concessão do privilégio MANAGE WAREHOUSES a um Snowflake Native App¶
O privilégio MANAGE WAREHOUSES permite que um aplicativo crie, modifique e use warehouses dentro da conta de consumidor. Para conceder o privilégio MANAGE WAREHOUSES a um aplicativo, use GRANT conforme mostrado no exemplo a seguir:
GRANT MANAGE WAREHOUSES ON ACCOUNT TO APPLICATION hello_snowflake_app;
Concessão do privilégio IMPORTED PRIVILEGES no banco de dados SNOWFLAKE¶
Alguns aplicativos podem solicitar que um consumidor conceda o privilégio IMPORTED PRIVILEGES no banco de dados SNOWFLAKE de sua conta. Este privilégio só pode ser concedido usando comandos SQL. Não pode ser concedido usando Snowsight. Se um aplicativo exigir esse privilégio, o provedor deverá comunicar essa exigência ao consumidor, por exemplo, no arquivo README do aplicativo.
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;
Nota
O privilégio IMPORTED PRIVILEGES permite que o aplicativo acesse informações sobre uso e custos associados à conta do consumidor. O consumidor deve garantir que deseja compartilhar essas informações com o aplicativo antes de conceder esse privilégio.