Best Practices für freigegebene Arbeitsbereiche

Die folgenden Empfehlungen zeigen, wie Administrierende freigegebene Arbeitsbereiche effektiv planen, konfigurieren und warten können.

Freigegebene Arbeitsbereiche planen und einrichten

Freigegebene Arbeitsbereiche werden als Objekte auf Schemaebene innerhalb einer Standarddatenbank erstellt und folgen dem bestehenden Modell der rollenbasierten Zugriffssteuerung (RBAC) von Snowflake.

Um einen freigegebenen Arbeitsbereich zu erstellen, müssen Benutzer entweder Eigentümer des Zielschemas sein oder über die folgenden Berechtigungen verfügen:

  • USAGE für Datenbank und Schema

  • CREATE WORKSPACE für das Schema

Berechtigungen für die Erstellung erteilen

  1. Führen Sie als Admin den folgenden Befehl aus, um einer Person die erforderlichen Berechtigungen auf Schemaebene zu erteilen:

    GRANT USAGE ON DATABASE <database_name>.<schema_name> TO ROLE <role_name>;
    GRANT CREATE WORKSPACE ON SCHEMA <database_name>.<schema_name> TO ROLE <role_name>;
    
    Copy

Befehle zur Verwaltung von Arbeitsbereichen

Verwenden Sie die folgenden Befehle, um den Zugriff auf bestehende freigegebene Arbeitsbereiche zu überwachen und zu verwalten:

Aktion

Syntax

Auflisten aller Arbeitsbereiche

SHOW WORKSPACES IN ACCOUNT;

Anzeigen der Arbeitsbereichsberechtigungen

SHOW GRANTS ON WORKSPACE <workspace_name>;

Erteilen von Berechtigungen zum Bearbeiten

GRANT WRITE ON WORKSPACE <workspace_name> TO ROLE <role_name>;

Widerrufen von Berechtigungen zum Bearbeiten

REVOKE WRITE ON WORKSPACE <workspace_name> FROM ROLE <role_name>;

Beispiel

GRANT WRITE ON WORKSPACE my_workspace;

REVOKE WRITE ON WORKSPACE my_workspace;
Copy

Bewährte Governance-Praktiken

Wenn Sie freigegebene Arbeitsbereiche in Ihrem Konto aktivieren, beachten Sie die folgenden Best Practices:

  • Bewusst planen: Richten Sie freigegebene Arbeitsbereiche auf bestimmte Teams, Projekte oder Anwendungsfälle aus. Weniger, aber dafür gut definierte Arbeitsbereiche sorgen für mehr Übersichtlichkeit und reduzieren Verwirrung bei Benutzenden.

  • Berechtigungen zum Erstellen einschränken: Beschränken Sie CREATE WORKSPACE-Berechtigungen auf bestimmte Verwalterrollen und Schemabesitzende. Eine zu großzügige Gewährung dieser Berechtigung kann zu unnötigen Duplizierungen oder einer Überlastung des Arbeitsbereichs führen.

  • Lebenszyklus des Arbeitsbereichs überwachen: Überprüfen Sie regelmäßig bestehende freigegebene Arbeitsbereiche, und deaktivieren Sie veraltete oder nicht genutzte Arbeitsbereiche. Richten Sie einen unkomplizierten Überprüfungsprozess ein (z. B. vierteljährlich), um sicherzustellen, dass nur aktive und relevante Arbeitsbereiche verfügbar bleiben.

Organisationsmodelle

Administrierende können freigegebene Arbeitsbereiche je nach Zusammenarbeitsmodell ihrer Organisation auf unterschiedliche Weise strukturieren.

Zentraler Hub für die Zusammenarbeit

Eine einzige Datenbank und ein einziges Schema für die gemeinsamen Arbeitsbereiche aller Teams bieten einen einheitlichen Ort für die teamübergreifende Zusammenarbeit.

Beispiel-Setup

CREATE DATABASE IF NOT EXISTS SHARED_WORKSPACES_DB;
CREATE SCHEMA IF NOT EXISTS SHARED_WORKSPACES_SCHEMA;

GRANT USAGE ON DATABASE SHARED_WORKSPACES_DB.SHARED_WORKSPACES_SCHEMA TO ROLE WORKSPACES_STEWARDS;
GRANT CREATE WORKSPACE ON SCHEMA SHARED_WORKSPACES_DB.SHARED_WORKSPACES_SCHEMA TO ROLE WORKSPACES_STEWARDS;
Copy

Arbeitsbereiche für Teams

Jedes Team besitzt eine eigene Datenbank oder ein eigenes Schema und verwaltet innerhalb seines Bereichs gemeinsam genutzte Arbeitsbereiche. Dieses Modell eignet sich für Organisationen, die Datenbanken und Rollen bereits nach Abteilungen, Ausführungen oder Geschäftsbereichen ausrichten.

Hybrider Ansatz

Verwenden Sie ein kombiniertes, zentrales Schema für teamübergreifende Projekte oder Projekte mit hoher Sichtbarkeit mit teamspezifischen Schemas für die tägliche Zusammenarbeit. Dieses Modell bietet ein Gleichgewicht zwischen Flexibilität und zentralisierter Governance und Auffindbarkeit.

Hinweise zum Rollendesign und Zugriffsmanagement

  • Freigegebene Arbeitsbereiche können nur für Rollen (nicht für einzelne Benutzende) freigegeben werden.

  • Die meisten Organisationen können ihre vorhandenen Rollen verwenden, um den Zugriff zu verwalten. Vermeiden Sie es, neue Rollen ausschließlich für freigegebene Arbeitsbereiche zu erstellen, sofern dies nicht erforderlich ist.

Best Practices

  • Verwenden Sie bestehende Rollen, die bereits eine Teammitgliedschaft oder Funktion darstellen.

  • Weisen Sie eine bestimmte Verwalterrolle zu, die für die Verwaltung des Zugriffs und die Aufrechterhaltung der Arbeitsbereichsstruktur verantwortlich ist.

Einführung und Wartung

  • Namenskonventionen: Um die Auffindbarkeit zu verbessern, verwenden Sie klare und konsistente Muster wie TEAM_PROJECT_NAME.

  • Eigentümerschaft: Weisen Sie jedem freigegebenen Arbeitsbereich eine Verwalter- oder Eigentümerrolle zu, um die Verantwortlichkeit zu gewährleisten.

  • Dokumentation: Pflegen Sie ein internes Verzeichnis oder Wiki, das die aktiven freigegebenen Arbeitsbereiche und deren Verwendungszweck auflistet.

  • Konsistenz: Bewegen Sie Benutzende dazu, von privaten in freigegebene Arbeitsbereiche zu wechseln, wenn Code oder Abfragen für die Zusammenarbeit bereit sind.

  • Regelmäßige Überprüfung: Überprüfen Sie Rollen, Schemas und freigegebene Arbeitsbereiche in regelmäßigen Abständen, um sicherzustellen, dass sie mit den Richtlinien und Teamstrukturen des Unternehmens übereinstimmen.