Privilèges requis pour créer et utiliser une application Streamlit¶
Au sein de Streamlit in Snowflake , une application Streamlit est un objet sécurisé qui adhère au cadre de contrôle d’accès Snowflake. Les applications Streamlit utilisent un modèle de permission basé sur les droits du propriétaire. Pour plus d’informations, voir Comprendre les droits du propriétaire et les applications Streamlit in Snowflake.
Un propriétaire de l’application et le propriétaire du schéma contenant l’application Streamlit peuvent déterminer quels rôles ont la permission d’utiliser l’application. Les utilisateurs peuvent interagir avec l’application et voir tout ce qui est affiché par l’application Streamlit. Les utilisateurs ont la même vue de l’application que le propriétaire, sauf qu’ils ne peuvent pas accéder au mode d’édition.
Pour plus d’informations, voir Partagez une application Streamlit.
Privilèges requis pour créer une application Streamlit¶
Pour créer une application Streamlit, si votre rôle ne possède pas les objets de la table suivante, votre rôle doit disposer des privilèges répertoriés sur ces objets :
Privilège |
Objet |
Remarques |
|---|---|---|
CREATE STREAMLIT |
Schéma dans lequel vous créez l’objet Streamlit |
|
READ |
Zone de préparation à partir de laquelle vous copiez les fichiers sources de l’application Streamlit |
|
USAGE |
Entrepôt utilisé par l’application Streamlit |
|
USAGE |
Pool de calcul utilisé par l’application Streamlit |
Ce privilège n’est requis que si votre application utilise un environnement d’exécution de conteneur. |
USAGE |
Intégrations d’accès externes utilisées par l’application Streamlit |
Ce privilège n’est requis que si votre application utilise des intégrations d’accès externes. Pour les environnements d’exécution de conteneurs, ce privilège est nécessaire pour installer des paquets à partir d’index de paquets externes comme PyPI. |
USAGE |
Secrets utilisés par l’application Streamlit |
Ce privilège n’est requis que si votre application utilise des secrets et ne s’applique qu’aux environnements d’exécution d’entrepôts. |
CREATE STAGE |
Schéma dans lequel vous créez l’objet Streamlit |
Ce privilège n’est requis que pour créer des objets Streamlit avec le paramètre ROOT_LOCATION. |
Pour effectuer une opération sur un objet dans un schéma, il est nécessaire de disposer d’au moins un privilège sur la base de données parente et d’au moins un privilège sur le schéma parent.
Utilisez la commande GRANT <privilèges> … TO ROLE pour accorder ces privilèges à un rôle. L’exemple suivant montre comment accorder les privilèges nécessaires pour créer des applications d’environnement d’exécution de conteneur (prévisualisation) :
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;
Si une attribution future est définie sur la base de données ou le schéma, assurez-vous que l’utilisateur crée l’application Streamlit en utilisant le rôle défini dans l’attribution future.
Privilèges requis pour visualiser une application Streamlit¶
Pour visualiser une application Streamlit, vous devez avoir un compte Snowflake et être connecté. En outre, vous devez utiliser un rôle qui bénéficie du privilège USAGE sur les objets suivants :
La base de données qui contient l’application Streamlit
Le schéma qui contient l’application Streamlit
L’application Streamlit
Dans la plupart des cas, lorsque le propriétaire d’applications partage une application Streamlit avec un autre rôle, le privilège USAGE est automatiquement accordé au nouveau rôle. Cependant, si une application Streamlit est créée dans un schéma avec MANAGED ACCESS, le privilège USAGE doit être accordé manuellement au nouveau rôle.
Le propriétaire du schéma ou un utilisateur ayant le rôle avec le privilège MANAGE GRANTS doit accorder le privilège USAGE à l’aide de la commande GRANT <privilèges> … TO ROLE comme indiqué dans cet exemple :
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;
Le propriétaire du schéma ou un utilisateur ayant le rôle avec le privilège MANAGE GRANTS peut accorder le privilège USAGE pour voir toutes les futures applications Streamlit créées dans le schéma, comme le montre cet exemple :
GRANT USAGE ON FUTURE STREAMLITS IN SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_viewer;