Teilen über


Anleitung: So gewähren Sie einem neuen Benutzer Zugriff auf Projekte und Datenbanken

Von Bedeutung

Lakebase Autoscaling ist in Beta in den folgenden Regionen: eastus2, westeurope, westus.

Lakebase Autoscaling ist die neueste Version von Lakebase mit automatischer Berechnung, Skalierung bis Null, Verzweigung und sofortiger Wiederherstellung. Einen Featurevergleich mit Lakebase Provisioned finden Sie unter Auswahl zwischen Versionen.

Erfahren Sie, wie Sie einen neuen Benutzer mit Zugriff auf Ihr Lakebase-Projekt und Ihre Datenbank einrichten. In diesem Lernprogramm werden berechtigungen auf Projektebene (zum Verwalten von Lakebase-Ressourcen) und Berechtigungen auf Datenbankebene (für den Zugriff auf Daten über Postgres) behandelt.

Informationen zu den beiden Berechtigungssystemen

Lakebase Postgres verwendet zwei Berechtigungsebenen:

  1. Projektberechtigungen (ACLs): Steuern von Aktionen auf Plattformebene, z. B. Erstellen von Verzweigungen, Verwalten von Berechnungen und Verwalten von Projekteinstellungen. Diese werden über die Lakebase-App verwaltet.

  2. Postgres-Rollenberechtigungen: Steuern des Zugriffs auf Daten innerhalb der Datenbank selbst. Diese werden über standardmäßige Postgres-Befehle GRANT verwaltet.

Diese Systeme haben keine automatische Synchronisierung. Sie können diese Berechtigungen unabhängig oder gemeinsam erteilen, je nach den Anforderungen Ihrer Organisation:

  • Gewähren Sie beiden Ebenen Benutzern, die Plattformzugriff und Datenbankzugriff benötigen.
  • Erteilen Sie nur Projektberechtigungen für Benutzer, die Infrastruktur verwalten, aber keine Daten abfragen müssen.
  • Gewähren Sie nur Datenbankzugriff für Benutzer, die Daten abfragen müssen, aber keine Lakebase-Ressourcen verwalten müssen (sie können mithilfe von Tools wie psql und Verbindungsdetails eine Verbindung herstellen).

In diesem Lernprogramm wird gezeigt, wie Sie beide Zugriffsebenen einrichten:

  • Erteilen von Projektberechtigungen, damit Benutzer mit Lakebase-Plattformressourcen arbeiten können (in diesem Lernprogramm wird CAN MANAGE für den vollzugriff verwendet)
  • Erstellen einer Postgres-Rolle mit entsprechenden Datenbankrechten zum Herstellen einer Verbindung mit und Abfragen der Datenbank

Standardberechtigungen

Alle Arbeitsbereichsbenutzer erben standardmäßig DIE BERECHTIGUNG CAN CREATE, wodurch das Anzeigen und Erstellen von Projekten ermöglicht wird. Um zusätzlichen Zugriff auf die Ressourcen und Datenbanken Ihres Projekts zu gewähren, müssen Sie explizit zusätzliche Berechtigungen zuweisen.

Voraussetzungen

  • Ein Lakebase-Projekt mit einer Datenbank
  • Arbeitsbereichsadministrator oder "CAN MANAGE"-Berechtigung für das Projekt
  • Die Azure Databricks-Identität (E-Mail-Adresse) des Benutzers im selben Arbeitsbereich, in dem das Projekt erstellt wurde

Szenario: Hinzufügen eines Datenanalysten mit Lese-/Schreibzugriff

Gehen wir durch das Hinzufügen eines Datenanalysten mit dem Namen Alex Lopez , der Folgendes benötigt:

  • Möglichkeit zum Erstellen und Verwalten von Branches, Rechnern und Datenbanken (CAN MANAGE)
  • Lese- und Schreibzugriff auf Tabellen im public Schema Ihrer Postgres-Datenbank
  • Möglichkeit zum Erstellen neuer Tabellen für die Analyse

Schritt 1: Erteilen von Projektberechtigungen

Erteilen Sie dem Benutzer zuerst die BERECHTIGUNG CAN MANAGE, damit er Projektmanagementaktionen ausführen kann.

  1. Navigieren Sie in der Lakebase-App zu Ihrem Projekt.
  2. Klicken Sie in der linken Randleiste auf "Einstellungen ".
  3. Scrollen Sie zum Abschnitt "Project-Berechtigungen" .
  4. Klicken Sie auf "Berechtigung erteilen".
  5. Suchen Sie nach und wählen Sie den Benutzer aus.
  6. Wählen Sie "CAN MANAGE"- Berechtigung aus.
  7. Klicken Sie auf Gewähren.

Gewährung der CAN MANAGE-Berechtigung

Funktionen von KANN VERWALTEN:

  • Erstellen und Löschen von Verzweigungen
  • Verwalten von Berechnungen und Konfigurieren von Projekteinstellungen
  • Erstellen und Verwalten von Datenbanken und Postgres-Rollen
  • Vollzugriff auf Projektvorgänge

Hinweis

CAN MANAGE gewährt voll kontrolle über das Projekt, einschließlich vieler anderer Aktionen. Eine vollständige Liste aller Berechtigungsstufen und spezifischen Aktionen, die jeweils zulässig sind, finden Sie unter Lakebase-Projekt-ACLs.

Schritt 2: Erstellen einer Postgres-Rolle für den Benutzer

Erstellen Sie nun eine OAuth-Rolle, mit der Alex sich mit ihren Azure Databricks-Identitäten mit OAuth-Token authentifizieren kann. Als Projektbesitzer verfügen Sie über die erforderlichen Berechtigungen zum Erstellen von Rollen.

  1. Öffnen Sie den SQL-Editor für Lakebase, und stellen Sie eine Verbindung mit Ihrem Projekt her.

  2. Erstellen Sie die databricks_auth Erweiterung (sofern noch nicht aktiviert):

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  3. Verwenden Sie die databricks_create_role Funktion, um die OAuth Postgres-Rolle für Alex zu erstellen:

    SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
    

Dadurch wird eine OAuth-Rolle erstellt, die:

  • Hat denselben Namen wie ihre Azure Databricks-Identität (alex.lopez@databricks.com)
  • Kann sich mithilfe von OAuth-Token authentifizieren
  • Verfügt über ANMELDEberechtigungen
  • Verfügt noch über keine Datenbankberechtigungen (wir gewähren diese als Nächstes)

Hinweis

Informationen zu OAuth-Rollen:

  • OAuth-Rollen authentifizieren sich mit zeitlich begrenzten Token (ablaufen nach 1 Stunde)
  • Benutzer erhalten Token aus dem Lakebase-App-Verbindungsdialogfeld
  • Optimal für interaktive Sitzungen und arbeitsbereichintegrierte Workflows
  • Weitere Informationen finden Sie unter "Informationen zur Authentifizierung".

Schritt 3: Gewähren von Postgres-Datenbankberechtigungen

Erteilen Sie Alex nun die benötigten Datenbankberechtigungen. Wir gewähren ihnen Lese-/Schreibzugriff auf das public Schema.

-- Grant CONNECT permission on the database
GRANT CONNECT ON DATABASE databricks_postgres TO "alex.lopez@databricks.com";

-- Grant USAGE permission on the public schema (required to access objects in it)
GRANT USAGE ON SCHEMA public TO "alex.lopez@databricks.com";

-- Grant CREATE permission on the public schema (allows creating new tables)
GRANT CREATE ON SCHEMA public TO "alex.lopez@databricks.com";

-- Grant read-write access to all existing tables in public schema
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO "alex.lopez@databricks.com";

-- Grant permissions on future tables (so Alex can access new tables automatically)
ALTER DEFAULT PRIVILEGES IN SCHEMA public
    GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "alex.lopez@databricks.com";

-- Grant permission to use sequences (needed for SERIAL columns)
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO "alex.lopez@databricks.com";

-- Grant permissions on future sequences
ALTER DEFAULT PRIVILEGES IN SCHEMA public
    GRANT USAGE, SELECT ON SEQUENCES TO "alex.lopez@databricks.com";

Was diese Berechtigungen zulassen:

  • CONNECT: Herstellen einer Verbindung mit der Datenbank
  • USAGE auf Schema: Zugreifen auf Objekte innerhalb des Schemas
  • CREATE im Schema: Neue Tabellen, Ansichten, Funktionen erstellen
  • SELECT, INSERT, UPDATE, DELETE in Tabellen: Daten lesen und schreiben
  • Sequenzberechtigungen: Automatisches Inkrementieren von Spalten verwenden

Schritt 4: Testen der Verbindung

Lassen Sie Alex überprüfen, ob sie eine Verbindung herstellen und auf die Datenbank zugreifen können.

Verwenden des Lakebase SQL-Editors:

  1. Alex öffnet die Lakebase-App und navigiert zu Ihrem Projekt.

  2. Alex öffnet den SQL-Editor für Lakebase.

  3. Im SQL-Editor sollte Alex die folgenden Abfragen ausführen können, um Berechtigungen zu überprüfen:

    -- Check role memberships
    SELECT rolname FROM pg_roles WHERE rolname = 'alex.lopez@databricks.com';
    
    -- Verify can read data
    SELECT * FROM your_table LIMIT 5;
    
    -- Verify can write data
    INSERT INTO your_table (column1, column2) VALUES ('test', 'value');
    
    -- Verify can create tables
    CREATE TABLE alex_analysis (
        id SERIAL PRIMARY KEY,
        notes TEXT,
        created_at TIMESTAMP DEFAULT NOW()
    );
    

Alternativ können Sie psql verwenden:

Alex kann sich auch mit externen Tools wie psql verbinden.

  1. Klicken Sie im Projektdashboard auf "Verbinden".
  2. Wählen Sie die Verzweigung, Berechnung und Datenbank aus.
  3. Wählen Sie in der Dropdownliste "Rollen" die Option alex.lopez@databricks.comaus.
  4. Kopieren Sie den psql Verbindungsausschnitt.
  5. Klicken Sie auf "OAuth-Token kopieren ", um ein Authentifizierungstoken abzurufen.
  6. Stellen Sie eine Verbindung mit dem kopierten psql Befehl her, und geben Sie das OAuth-Token ein, wenn Sie zur Eingabe des Kennworts aufgefordert werden.
  7. Führen Sie die oben gezeigten Überprüfungsabfragen aus.

Alternative: Schreibgeschützter Datenbankzugriff

Für Benutzer, die nur Daten abfragen müssen, ohne sie zu ändern, erteilen Sie dieselben Projektberechtigungen, verwenden aber restriktivere Datenbankberechtigungen:

Projektberechtigungen

Gewähren Sie CAN MANAGE , um das Erstellen von Datenbanken, Rollen und anderen Projektvorgängen zu ermöglichen.

Datenbankberechtigungen

-- Create OAuth role
SELECT databricks_create_role('analyst@databricks.com', 'USER');

-- Grant CONNECT permission
GRANT CONNECT ON DATABASE databricks_postgres TO "analyst@databricks.com";

-- Grant USAGE on the public schema
GRANT USAGE ON SCHEMA public TO "analyst@databricks.com";

-- Grant SELECT-only access to all existing tables
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "analyst@databricks.com";

-- Grant SELECT-only access to future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA public
    GRANT SELECT ON TABLES TO "analyst@databricks.com";

-- Grant USAGE on sequences (needed to view sequence values)
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO "analyst@databricks.com";

Diese Finanzhilfen:

  • Lesezugriff auf alle Tabellen
  • Datenbankstruktur anzeigen
  • Daten können nicht geändert werden (nein INSERT, UPDATE, DELETE)
  • Tabellen oder andere Objekte können nicht erstellt werden.

Arbeiten mit Gruppen und Dienstprinzipalen

Sie können demselben Prozess folgen, um Zugriff auf Azure Databricks-Gruppen und Dienstprinzipale zu gewähren. Erteilen Sie Projektberechtigungen über die Lakebase-App-Benutzeroberfläche, erstellen Sie OAuth-Rollen mithilfe databricks_create_role()und gewähren Sie Datenbankberechtigungen. Weitere Informationen finden Sie unter "Gruppen und Dienstprinzipale".

Verwenden nativer Postgres-Kennwortrollen

Als Alternative zu OAuth-Rollen können Sie native Postgres-Passwortrollen für Anwendungen erstellen, die keine stündliche Token-Aktualisierung durchführen können, für langlaufende Prozesse oder für externe Tools, die OAuth nicht unterstützen. Anweisungen zum Erstellen und Verwalten von Kennwortrollen finden Sie unter Verwalten von Postgres-Rollen.

Nächste Schritte