Privilégios necessários para criar e usar um aplicativo Streamlit¶
Dentro de Streamlit in Snowflake, um aplicativo Streamlit é um objeto protegível que segue a estrutura de controle de acesso Snowflake. Os aplicativos Streamlit usam um modelo de permissão baseado nos direitos do proprietário. Para obter mais informações, consulte Noções básicas sobre os direitos do proprietário e aplicativos Streamlit in Snowflake.
Um proprietário de app e o proprietário do esquema que contém o app Streamlit podem determinar quais funções têm permissão para usar o app. Os usuários podem interagir com o aplicativo e ver qualquer coisa exibida pelo aplicativo Streamlit. Os usuários têm a mesma exibição do app que o proprietário, exceto que não podem acessar o modo de edição.
Para obter mais informações, consulte Compartilhamento de um aplicativo Streamlit.
Privilégios necessários para criar um aplicativo Streamlit¶
Se sua função não for proprietária dos objetos na tabela a seguir, ela deverá ter os privilégios listados nesses objetos para criar um app Streamlit:
Privilégio |
Objeto |
Notas |
|---|---|---|
CREATE STREAMLIT |
Esquema onde você cria o objeto Streamlit |
|
READ |
Estágio de onde você copia os arquivos de origem do aplicativo Streamlit |
|
USAGE |
Warehouse usado pelo app Streamlit |
|
USAGE |
Pool de computação usado pelo app Streamlit |
Esse privilégio será necessário apenas se seu app usar um tempo de execução de contêiner. |
USAGE |
Integrações de acesso externo usadas pelo app Streamlit |
Esse privilégio será necessário apenas se seu app usar integrações de acesso externo. Para tempos de execução de contêiner, esse privilégio é necessário para instalar pacotes de índices de pacotes externos como PyPI. |
USAGE |
Segredos usados pelo app Streamlit |
Esse privilégio será necessário apenas se seu app usar segredos e será aplicado somente a tempos de execução de warehouse. |
CREATE STAGE |
Esquema onde você cria o objeto Streamlit |
Este privilégio só é necessário para criar objetos Streamlit com o ROOT_LOCATION Parâmetro. |
A operação em um objeto de esquema requer pelo menos um privilégio no banco de dados pai e um privilégio no esquema pai.
Para conceder esses privilégios a uma função, use o comando GRANT <privilégios> … TO ROLE. O exemplo a seguir mostra como conceder os privilégios necessários para criar apps de tempo de execução de contêiner (versão preliminar):
GRANT USAGE ON DATABASE streamlit_db TO ROLE streamlit_developer;
GRANT USAGE ON SCHEMA streamlit_db.apps TO ROLE streamlit_developer;
GRANT CREATE STREAMLIT ON SCHEMA streamlit_db.apps TO ROLE streamlit_developer;
GRANT USAGE ON COMPUTE_POOL streamlit_compute_pool TO ROLE streamlit_developer;
GRANT USAGE ON INTEGRATION python_package_index TO ROLE streamlit_developer;
GRANT USAGE ON WAREHOUSE streamlit_wh TO ROLE streamlit_developer;
Se uma concessão futura for definida no banco de dados ou esquema, certifique-se de que o usuário crie o aplicativo Streamlit usando a função definida na concessão futura.
Privilégios necessários para visualizar um aplicativo Streamlit¶
Para visualizar um aplicativo Streamlit, você deve ter uma conta Snowflake e estar conectado nela. Além disso, você deve usar uma função que tenha o privilégio USAGE nos seguintes objetos:
Banco de dados que contém o aplicativo Streamlit
Esquema que contém o aplicativo Streamlit
O aplicativo Streamlit
Na maioria dos casos, quando o proprietário do aplicativo compartilha um aplicativo Streamlit com outra função, o privilégio USAGE é concedido automaticamente à nova função. No entanto, se um aplicativo Streamlit for criado em um esquema com MANAGED ACCESS, o privilégio USAGE deverá ser concedido manualmente à nova função.
O proprietário do esquema ou um usuário com função com o privilégio MANAGE GRANTS deve conceder o privilégio USAGE usando o comando GRANT <privilégios> … TO ROLE, conforme mostrado neste exemplo:
GRANT USAGE ON DATABASE streamlit_db TO ROLE streamlit_viewer;
GRANT USAGE ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_viewer;
GRANT USAGE ON STREAMLIT streamlit_db.streamlit_schema.streamlit_app TO ROLE streamlit_viewer;
O proprietário do esquema ou um usuário com a função com o privilégio MANAGE GRANTS pode conceder o privilégio USAGE para visualizar todos os futuros aplicativos Streamlit criados no esquema, conforme mostrado neste exemplo:
GRANT USAGE ON FUTURE STREAMLITS IN SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_viewer;