Comprendre les droits du propriétaire et les applications Streamlit in Snowflake¶
Introduction¶
Le modèle de Streamlit dans Snowflake est étroitement mappé au modèle des droits du propriétaire dans les procédures stockées. Cela élimine le besoin de jetons de compte de service et s’intègre aux fonctions d’authentification, de contrôle d’accès et de politique réseau fournies par Snowflake.
Concernant les droits du propriétaire dans Streamlit in Snowflake¶
Les applications Streamlit respectent les règles suivantes au sein d’une session :
Exécuter avec les privilèges du propriétaire, pas les privilèges de l’appelant.
Effectuer une exécution avec l’entrepôt fourni par le propriétaire de l’application.
Utiliser la base de données et le schéma dans lesquels l’application Streamlit dans Snowflake est créée, et non la base de données et le schéma actuellement utilisés par l’appelant.
À propos de la création d’applications¶
Les applications Streamlit sont des objets de niveau schéma. Pour créer une application Streamlit, vous devez disposer de privilèges appropriés sur la base de données, le schéma et l’entrepôt. Lorsqu’une application est créée, elle s’exécute avec le rôle de l’utilisateur qui a créé l’application à l’origine.
Pour plus d’informations, voir Privilèges requis pour créer une application Streamlit.
Visualisation d’une application¶
Le propriétaire de l’application peut choisir les rôles autorisés à utiliser l’application. Les spectateurs peuvent interagir avec l’application et voir tout ce qui s’affiche à l’écran. Tous les privilèges du rôle de propriétaire de l’application peuvent être utilisés par l’application lorsqu’ils sont partagés avec d’autres rôles, que le privilège ait ou non WITH GRANT activé.
Pour plus d’informations, voir Privilèges requis pour visualiser une application Streamlit.
Restrictions des droits du propriétaire¶
Les applications fonctionnant avec les droits du propriétaire, elles sont soumises à plusieurs restrictions supplémentaires. Si vous utilisez des fonctions contextuelles, vous devez accorder le privilège READ SESSION global attribué au rôle de propriétaire de l’application. Pour plus d’informations, voir Politiques d’accès aux lignes dans Streamlit in Snowflake.
Les applications de runtime d’entrepôt s’exécutent en tant que procédure stockée et sont soumises aux mêmes restrictions que les procédures stockées des droits du propriétaire. Par exemple, les éléments suivants sont concernés :
Les fonctions intégrées qui peuvent être appelées à l’intérieur d’une procédure stockée.
Commandes DESCRIBE, SHOW et LIST.
Les types d’instructions SQL qui peuvent être appelées à l’intérieur d’une procédure stockée.
Pour plus d’informations, voir Restrictions supplémentaires sur les procédures stockées avec droits du propriétaire. Les applications Container-Runtime (Prévisualisation) ne s’exécutent pas en tant que procédures stockées et ne sont pas soumises à ces restrictions supplémentaires.
Droits des propriétaires et sécurité des applications¶
Les applis Streamlit exécutées dans Streamlit in Snowflake s’exécutent avec les droits du propriétaire et suivent le même modèle de sécurité que les autres objets Snowflake qui s’exécutent avec les droits du propriétaire.
Bien que Snowflake offre des fonctions de sécurité telles que l’authentification, le contrôle d’accès basé sur les rôles et les contrôles administratifs, la responsabilité de la sécurité des applications est partagée avec les créateurs et propriétaires d’applications.
Soyez prudent, par exemple, lorsque vous accordez un rôle avec des privilèges d’écriture à un autre utilisateur Snowflake. Les privilèges d’écriture permettent à l’utilisateur de modifier l’application Streamlit.
En général, Snowflake recommande d’utiliser un contrôle d’accès basé sur les rôles et des rôles dédiés pour la création et l’affichage des applications Streamlit. En outre, il est recommandé de suivre des pratiques de sécurité appropriées lorsque vous développez des applications Streamlit dans Snowflake et d’effectuer des audits de sécurité réguliers des applications Streamlit de votre compte.