Politiques d’accès aux lignes dans Streamlit in Snowflake¶
Cette rubrique décrit l’utilisation des fonctions de contexte et des politiques d’accès aux lignes dans les runtimes d’entrepôts Streamlit in Snowflake.
In container runtimes, context functions on owner’s rights connections will return values from the owner role’s context and so are not appropriate for user-targeted row access policies. However, restricted caller’s rights connections return the viewer’s context. For more information, see Restriction des droits de l’appelant et Streamlit in Snowflake.
Fonctions de contexte et politiques d’accès aux lignes dans Streamlit in Snowflake¶
Pour utiliser des fonctions contextuelles, telles que CURRENT_USER, et les données des tables avec des politiques d’accès aux lignes dans une application Streamlit in Snowflake, un utilisateur avec le rôle ACCOUNTADMIN doit accorder le privilège global READ SESSION au rôle de propriétaire de l’application Streamlit, comme indiqué dans l’exemple suivant :
Note
Dans une application Streamlit in Snowflake, vous ne pouvez pas utiliser de politiques d’accès aux lignes qui utilisent CURRENT_ROLE. Les applications Streamlit in Snowflake fonctionnent avec les droits du propriétaire, donc l’utilisation de CURRENT_ROLE à l’intérieur d’une application Streamlit renvoie toujours le rôle de propriétaire de l’application. Pour plus d’informations, voir Comprendre les droits du propriétaire et les applications Streamlit in Snowflake.
Exemple : accéder aux données d’une table avec une politique d’accès aux lignes à l’aide de CURRENT_USER¶
Vous pouvez utiliser une application Streamlit in Snowflake permettant de gérer l’accès aux lignes d’une table protégée par une politique d’accès aux lignes. Précisez la fonction CURRENT_USER dans le corps de la politique d’accès aux lignes et ajoutez la politique d’accès aux lignes à la table.
L’exemple suivant montre comment gérer l’accès à une table protégée par une politique d’accès aux lignes dans une application Streamlit in Snowflake.
Créer une table et insérer des données :
Créez une politique d’accès aux lignes :
Ajoutez la politique d’accès aux lignes à la table :
Créez une application Streamlit.
Accordez le privilège READ SESSION global au rôle de propriétaire de l’application Streamlit :
Ajoutez le code suivant à votre application Streamlit :