Zeilenzugriffsrichtlinien in Streamlit in Snowflake¶
Unter diesem Thema wird die Verwendung von Kontextfunktionen und Zeilenzugriffsrichtlinien in Streamlit in Snowflake Warehouse-Laufzeiten beschrieben.
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 Beschränkte Aufruferrechte und Streamlit in Snowflake.
Kontextfunktionen und Zeilenzugriffsrichtlinien in Streamlit in Snowflake¶
Um Kontextfunktionen, wie z. B. CURRENT_USER, und Daten aus Tabellen mit Zeilenzugriffsrichtlinien in einer Streamlit in Snowflake-App zu verwenden, muss ein Benutzer mit der Rolle ACCOUNTADMIN der Eigentümerrolle der Streamlit-App die globale READ SESSION-Berechtigung erteilen, wie im folgenden Beispiel gezeigt:
Bemerkung
In einer Streamlit in Snowflake-App können Sie keine Zeilenzugriffsrichtlinien verwenden, die CURRENT_ROLE verwenden. Streamlit in Snowflake-Apps werden mit den Rechten des Eigentümers ausgeführt, so dass die Verwendung von CURRENT_ROLE innerhalb einer Streamlit-App immer die Rolle des Eigentümers der App zurückgibt. Weitere Informationen dazu finden Sie unter Erläuterungen zu Eigentümerrechten und Streamlit in Snowflake-Apps.
Beispiel: Zugriff auf Daten in einer Tabelle mit Zeilenzugriffsrichtlinie mit CURRENT_USER¶
Sie können eine Streamlit in Snowflake-App verwenden, um den Zugriff auf Zeilen in einer Tabelle zu regeln, die durch eine Zeilenzugriffsrichtlinie geschützt ist. Geben Sie die Funktion CURRENT_USER im Body der Zeilenzugriffsrichtlinie an und fügen Sie die Zeilenzugriffsrichtlinie der Tabelle hinzu.
Das folgende Beispiel zeigt, wie Sie den Zugriff auf eine Tabelle regeln, die durch eine Zeilenzugriffsrichtlinie auf Zeilen in einer Streamlit in Snowflake-App geschützt ist.
Erstellen Sie eine Tabelle, und fügen Sie Daten ein:
Erstellen Sie eine Zeilenzugriffsrichtlinie:
Fügen Sie die Zeilenzugriffsrichtlinie der Tabelle hinzu:
Erstellen einer Streamlit-App
Weisen Sie die globale READ SESSION-Berechtigung der Rolle des Eigentümers der Streamlit-App zu:
Fügen Sie den folgenden Code in Ihre Streamlit-App ein: