Noções básicas sobre os direitos do proprietário e aplicativos Streamlit in Snowflake¶
Introdução¶
O modelo do Streamlit no Snowflake é muito semelhante ao modelo de direitos do proprietário nos procedimentos armazenados. Isso elimina a necessidade de tokens de conta de serviço e se integra aos recursos de autenticação, controle de acesso e política de redes fornecidos pelo Snowflake.
Sobre os direitos do proprietário em Streamlit in Snowflake¶
Os aplicativos Streamlit obedecem às seguintes regras dentro de uma sessão:
São executados com os privilégios do proprietário, não com os privilégios do chamador.
São executados com o warehouse provisionado pelo proprietário do aplicativo.
Utilizam o banco de dados e o esquema nos quais o aplicativo Streamlit foi criado no Snowflake, não o banco de dados e o esquema que o chamador está usando atualmente.
Sobre a criação de aplicativos¶
Os aplicativos Streamlit são objetos no nível do esquema. Para criar um aplicativo Streamlit, você precisa de privilégios apropriados no banco de dados, no esquema e no warehouse. Quando um app é criado, ele é executado com a função do usuário que o criou originalmente.
Para obter mais informações, consulte Privilégios necessários para criar um aplicativo Streamlit.
Visualização de um aplicativo¶
O proprietário do aplicativo pode escolher quais funções têm permissão para usar o aplicativo. Os visualizadores podem interagir com o aplicativo e ver qualquer coisa exibida na tela. Todos os privilégios da função de proprietário do app podem ser utilizados pelo aplicativo quando compartilhados com outras funções, independentemente de o privilégio ter WITH GRANT habilitado.
Para obter mais informações, consulte Privilégios necessários para visualizar um aplicativo Streamlit.
Restrições aos direitos do proprietário¶
Como os aplicativos são executados com direitos de proprietário, eles têm diversas restrições adicionais. Se você usar alguma função de contexto, deverá conceder o privilégio global READ SESSION à função de proprietário do app. Para obter mais informações, consulte Políticas de acesso a linhas no Streamlit in Snowflake.
Os aplicativos de tempo de execução de warehouse são executados como um procedimento armazenado e estão sujeitos às mesmas restrições que os procedimentos armazenados com direitos de proprietário. Por exemplo, os seguintes itens são afetados:
As funções internas que podem ser chamadas de dentro de um procedimento armazenado.
A capacidade de executar instruções ALTER USER.
Comandos DESCRIBE, SHOW e LIST.
Os tipos de instruções SQL que podem ser chamadas de dentro de um procedimento armazenado.
Para obter mais informações, consulte Restrições adicionais aos procedimentos armazenados de direitos do proprietário. Os aplicativos de tempo de execução de contêiner (versão preliminar) não são executados como procedimentos armazenados e não estão sujeitos a essas restrições adicionais.
Direitos do proprietário e segurança do aplicativo¶
Os aplicativos Streamlit executados em Streamlit in Snowflake são executados com direitos de proprietário e seguem o mesmo modelo de segurança de outros objetos Snowflake executados com direitos de proprietário.
Embora o Snowflake forneça recursos de segurança como autenticação, controle de acesso baseado em função e controles administrativos, a responsabilidade pela segurança dos aplicativos é compartilhada com os criados e proprietários do aplicativo.
Tenha cuidado, por exemplo, ao conceder uma função com privilégios de gravação a outro usuário do Snowflake. Os privilégios de gravação permitem que o usuário modifique o aplicativo Streamlit.
Em geral, Snowflake recomenda o uso de controle de acesso baseado em funções e funções dedicadas para criar e visualizar aplicativos Streamlit. Além disso, você deve seguir práticas de segurança apropriadas ao desenvolver aplicativos Streamlit dentro do Snowflake e realizar auditorias de segurança regulares dos aplicativos Streamlit em sua conta.