Erforderliche Berechtigungen zum Erstellen und Verwenden einer Streamlit-App

Innerhalb von Streamlit in Snowflake ist eine Streamlit-App ein sicherungsfähiges Objekt, das dem Snowflake-Framework für die Zugriffssteuerung unterliegt. Streamlit-Apps verwenden ein Berechtigungsmodell, das auf Eigentümerrechten basiert. Weitere Informationen dazu finden Sie unter Erläuterungen zu Eigentümerrechten und Streamlit in Snowflake-Apps.

Der App-Eigentümer und der Eigentümer des Schemas, das die Streamlit-App enthält, können festlegen, welche Rollen die App verwenden dürfen. Benutzer können mit der App interagieren und alles sehen, was die Streamlit-App anzeigt. Benutzer haben die gleiche Ansicht der App wie der Eigentümer, nur dass sie nicht auf den Bearbeitungsmodus zugreifen können.

Weitere Informationen dazu finden Sie unter Freigabe einer Streamlit-App.

Erforderliche Berechtigungen zum Erstellen einer Streamlit-App

Wenn Ihre Rolle nicht Eigentümer der Objekte in der folgenden Tabelle ist, dann muss Ihre Rolle zur Erstellung einer Streamlit-App die aufgeführten Berechtigungen für diese Objekte haben:

Berechtigung

Objekt

Anmerkungen

CREATE STREAMLIT

Schema, in dem Sie das Streamlit-Objekt erstellen

READ

Stagingbereich, aus dem Sie die Quelldateien der Streamlit-App kopieren

USAGE

Warehouse, das von der Streamlit-App verwendet wird

USAGE

Computepool, der von der Streamlit-App verwendet wird

Diese Berechtigung ist nur erforderlich, wenn Ihre App eine Container-Laufzeit verwendet.

USAGE

Integrationen für den externen Zugriff, die von der Streamlit-App verwendet werden

Diese Berechtigung ist nur erforderlich, wenn Ihre App Integrationen für den externen Zugriff verwendet. Für Container-Laufzeiten ist diese Berechtigung erforderlich, um Pakete aus externen Paketindizes wie PyPI zu installieren.

USAGE

Geheimnisse, die von der Streamlit-App verwendet werden

Diese Berechtigung ist nur erforderlich, wenn Ihre App Geheimnisse verwendet, und sie gilt nur für Warehouse-Laufzeiten.

CREATE STAGE

Schema, in dem Sie das Streamlit-Objekt erstellen

Diese Berechtigung ist nur erforderlich, um Streamlit-Objekte mit dem ROOT_LOCATION-Parameter zu erstellen

Für das Ausführen von Operationen auf einem Objekt in einem Schema ist mindestens eine Berechtigung für die übergeordnete Datenbank und mindestens eine Berechtigung für das übergeordnete Schema erforderlich.

Mit dem Befehl GRANT <Berechtigungen> … TO ROLE weisen Sie diese Berechtigungen einer Rolle zu. Das folgende Beispiel zeigt, wie Sie die erforderlichen Berechtigungen zum Erstellen von Container-Laufzeit-Apps erteilen (Vorschau):

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;
Copy

Wenn eine zukünftige Berechtigungszuweisung für die Datenbank oder das Schema definiert ist, stellen Sie sicher, dass der Benutzer die Streamlit-App mit der in der zukünftigen Berechtigungszuweisung definierten Rolle erstellt.

Erforderliche Berechtigungen zum Anzeigen einer Streamlit-App

Um eine Streamlit-App anzuzeigen, müssen Sie ein Snowflake-Konto haben und angemeldet sein. Außerdem müssen Sie eine Rolle verwenden, die über die Berechtigung USAGE für die folgenden Objekte verfügt:

  • Die Datenbank, die die Streamlit-App enthält

  • Das Schema, das die Streamlit-App enthält

  • Die Streamlit-App

Wenn der App-Eigentümer eine Streamlit-App für eine andere Rolle freigibt, wird die USAGE-Berechtigung in den meisten Fällen der neuen Rolle automatisch zugewiesen. Wenn jedoch eine Streamlit-App in einem Schema mit MANAGED ACCESS erstellt wird, muss der neuen Rolle die USAGE-Berechtigung manuell zugewiesen werden.

Der Schemaeigentümer oder ein Benutzer mit der Rolle mit MANAGE GRANTS-Berechtigung für das Schema muss die USAGE-Berechtigung mit dem GRANT <Berechtigungen> … TO ROLE-Befehl zuweisen, wie im folgenden Beispiel gezeigt:

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;
Copy

Der Schemaeigentümer oder ein Benutzer mit der Rolle mit MANAGE GRANTS-Berechtigung kann die Berechtigung USAGE erteilen, um alle zukünftigen Streamlit-Apps anzuzeigen, die im Schema erstellt wurden, wie im folgenden Beispiel gezeigt:

GRANT USAGE ON FUTURE STREAMLITS IN SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_viewer;
Copy