Rollen verwalten

Postgres-Rollen steuern den Zugriff auf Ihre Postgres-Datenbanken, Schemas, Tabellen und andere Datenbankobjekte. Verwenden Sie die Lakebase-Benutzeroberfläche, um Rollen für Ihr Team zu erstellen und zu verwalten.

Hinweis

Bevor Sie mit Rollen arbeiten, erfahren Sie, wie Sie eine Verbindung mit Ihrer Datenbank herstellen und sich mithilfe von OAuth-Token oder systemeigener Postgres-Kennwortauthentifizierung authentifizieren .

Rollenübersicht

Wenn Sie ein Projekt erstellen, wird automatisch eine Postgres-Rolle für Ihre Databricks-Identität erstellt (z. B user@databricks.com. ). Diese Rolle besitzt die Standarddatenbank databricks_postgres und ist Mitglied databricks_superuser, was umfassende Berechtigungen zum Verwalten von Datenbankobjekten verleiht. Sie können zusätzliche Rollen in der Standardverzweigung Ihres Projekts oder in untergeordneten Verzweigungen erstellen.

Hinweis

Der Postgres-Rollenzustand ist zwischen Branches unabhängig. Wenn Sie eine Verzweigung erstellen, übernimmt sie die Postgres-Rollen, Datenbanken, Rollenmitgliedschaften und Berechtigungen der übergeordneten Verzweigung zum Zeitpunkt der Verzweigung. Nach der Verzweigung entwickelt sich jeder Zweig unabhängig weiter — das Erstellen von Rollen und Datenbanken, das Anwenden von GRANTs und REVOKEs sowie Änderungen an Rollenattributen oder Mitgliedschaften auf einem Zweig haben keine Auswirkungen auf irgendeinen anderen Zweig, einschließlich des übergeordneten Zweigs. Es gibt keine automatische Synchronisierung des Rollenstatus zwischen Zweigniederlassungen.

Projektberechtigungen (CAN USE, CAN MANAGE) funktionieren anders: sie gelten für das gesamte Projekt und alle zugehörigen Zweige. Siehe "Projektberechtigungen verwalten".

Erstellen einer Rolle

Verwenden Sie das Dialogfeld " Rolle hinzufügen " in der Lakebase-App, um entweder eine OAuth-Rolle für eine Databricks-Identität oder eine systemeigene Postgres-Kennwortrolle zu erstellen.

Erstellen einer OAuth-Rolle

OAuth-Rollen sind mit einer Azure Databricks-Identität (Benutzer, Dienstprinzipal oder Gruppe) verknüpft und authentifizieren sich mit OAuth-Token, die nach einer Stunde ablaufen.

Wenn Sie einen untergeordneten Branch erstellen, spiegelt er die Rolle und den Datenbankstatus des übergeordneten Branches zum Zeitpunkt der Verzweigung wider. Danach entwickelt sich der Status der Rolle jedes Zweigs unabhängig. Für Gruppen werden nur Gruppen auf Arbeitsbereichsebene unterstützt.

databricks_superuser Optional gewähren (erbt pg_read_all_data, pg_write_all_dataund pg_monitor) oder Standard-Postgres-Attribute (CREATEDB, CREATEROLE, BYPASSRLS). Siehe Rollenattribute in der PostgreSQL-Dokumentation.

Um eine OAuth-Rolle zu erstellen, navigieren Sie zu Rollen & Datenbanken>, klicken Sie auf die Registerkarte OAuth, wählen Sie eine Identität aus der Dropdownliste > aus, konfigurieren Sie die Berechtigungen und klicken Sie auf Hinzufügen.

Rolle hinzufügen – Registerkarte

Hinweis

Sie können OAuth-Rollen auch mithilfe der databricks_auth Erweiterung mit SQL oder der REST-API erstellen. Siehe Erstellen von Postgres-Rollen.

Erstellen einer Kennwortrolle

Kennwortrollen verwenden ein statisches Postgres-Kennwort und sind nicht mit einer Azure Databricks-Identität verknüpft. Sie sind nützlich für Anwendungen oder Tools, die herkömmliche Datenbankanmeldeinformationen erfordern.

Die Lakebase-App generiert automatisch ein sicheres Kennwort. Kopieren Sie sie unmittelbar nach der Erstellung – sie wird nicht erneut angezeigt. Wenn Sie ein benutzerdefiniertes Kennwort benötigen, legen Sie es später mithilfe von SQL fest. Die gleichen optionalen Berechtigungen aus der OAuth-Rolle gelten (databricks_superuser, CREATEDB, , CREATEROLEBYPASSRLS). Rollennamen müssen gültige Postgres-IDs sein und dürfen 63 Zeichen nicht überschreiten.

Um eine Kennwortrolle zu erstellen, navigieren Sie zur Registerkarte "Rollen und Datenbanken>Rollenkennwort>", geben Sie einen Rollennamen ein, konfigurieren Sie Berechtigungen, klicken Sie auf "Hinzufügen", und kopieren Sie das generierte Kennwort.

Rolle hinzufügen – Registerkarte

Anzeigen von Rollen

Um alle Rollen in einer Verzweigung anzuzeigen, navigieren Sie in der Lakebase-App zur Registerkarte " Rollen und Datenbanken " Ihrer Verzweigung.

Rollenliste

Verwalten von Kennwortverbindungen

Kennwortverbindungen sind für neue Lakebase-Autocaling-Projekte standardmäßig deaktiviert. Vorhandene Projekte sind von dieser Standardeinstellung nicht betroffen.

Um Kennwortverbindungen zu aktivieren, navigieren Sie zu IhrenProjekteinstellungen-Datenbankverbindungen>, und überprüfen Sie das Kennwort (native Postgres-Rollen).

Um Kennwortverbindungen zu deaktivieren, navigieren Sie zu IhrenProjekteinstellungen-Datenbankverbindungen>, und deaktivieren Sie das Kennwort (systemeigene Postgres-Rollen). Vorhandene Kennwortrollen werden nicht gelöscht, können sich aber nicht authentifizieren, während Kennwortverbindungen deaktiviert sind.

Sie können dies auch pro Computeendpunkt steuern. Wählen Sie in den Computeeinstellungen Ihrer ZweigstelleDatenbankverbindungen> aus, und aktivieren oder deaktivieren Sie das Kennwort (Postgres-Rollen).

Einstellungen für Datenbankverbindungen

Von Bedeutung

Dies ist eine Verhaltensänderung. Wenn Sie Automatisierungsskripts oder CI-Pipelines haben, die neue Lakebase-Autocaling-Projekte erstellen und auf systemeigene Postgres-Kennwortverbindungen angewiesen sind, müssen Sie jetzt nach der Projekterstellung explizit Kennwortverbindungen aktivieren.

So aktivieren oder deaktivieren Sie Kennwortverbindungen programmgesteuert:

CLI

# Enable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
  --json '{"spec": {"enable_pg_native_login": true}}'

# Disable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
  --json '{"spec": {"enable_pg_native_login": false}}'

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import FieldMask, Project, ProjectSpec

w = WorkspaceClient()

# Enable password connections
w.postgres.update_project(
    name="projects/<project-id>",
    project=Project(spec=ProjectSpec(enable_pg_native_login=True)),
    update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()

# Disable password connections
w.postgres.update_project(
    name="projects/<project-id>",
    project=Project(spec=ProjectSpec(enable_pg_native_login=False)),
    update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()

cURL

# Enable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"spec": {"enable_pg_native_login": true}}' | jq

# Disable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"spec": {"enable_pg_native_login": false}}' | jq

Informationen zur Authentifizierung finden Sie unter "Informationen zur Authentifizierung".

Zurücksetzen eines Kennworts

Sie können das Kennwort für systemeigene Postgres-Kennwortrollen zurücksetzen. OAuth-Rollen verwenden OAuth-Token für die Authentifizierung und verfügen nicht über Kennwörter zum Zurücksetzen.

So setzen Sie das Kennwort einer Rolle zurück:

  1. Navigieren Sie in der Lakebase-App zur Registerkarte "Rollen und Datenbanken " Ihrer Verzweigung.
  2. Wählen Sie im Rollenmenü " Kennwort zurücksetzen " aus, und klicken Sie auf "Zurücksetzen".
  3. Kopieren Sie das neue generierte Kennwort.

Hinweis

Durch das Zurücksetzen eines Kennworts in der Lakebase-App wird das Kennwort auf einen generierten Wert mit 60-Bit-Entropie zurückgesetzt. Um Ihren eigenen Kennwortwert festzulegen, können Sie das Kennwort mit dem SQL-Editor oder einem SQL-Client wie psql mit der folgenden Syntax zurücksetzen:

ALTER USER user_name WITH PASSWORD 'new_password';

Das Kennwort sollte mindestens 12 Zeichen mit einer Kombination aus Kleinbuchstaben, Großbuchstaben, Zahlen und Symbolzeichen enthalten. Benutzerdefinierte Kennwörter werden zur Erstellungszeit überprüft, um die 60-Bit-Entropie sicherzustellen.

Abrufen eines neuen OAuth-Tokens

Wenn Sie OAuth-Authentifizierung verwenden und ein neues OAuth-Token benötigen (Token laufen nach einer Stunde ab), können Sie ein Token aus dem modalen Connect-Element abrufen:

  1. Navigieren Sie in der Lakebase-App zu Ihrem Projekt.
  2. Klicken Sie auf "Verbinden" , um die modale Datenbankverbindung zu öffnen.
  3. Wählen Sie Ihre OAuth-Rolle aus der Dropdownliste "Rollen" aus.
  4. Klicken Sie auf "OAuth-Token kopieren", um ein neues Token zu kopieren.

Weitere Informationen: Herstellen einer Verbindung mit einer OAuth-Rolle | zur Authentifizierung

Löschen einer Rolle

Von Bedeutung

Das Löschen einer Rolle ist eine dauerhafte Aktion, die nicht rückgängig gemacht werden kann, und Sie können keine Rolle löschen, die eine Datenbank besitzt. Die Datenbank muss gelöscht werden, bevor die Rolle gelöscht wird, die die Datenbank besitzt.

So löschen Sie eine Rolle:

  1. Navigieren Sie in der Lakebase-App zur Registerkarte "Rollen und Datenbanken " Ihrer Verzweigung.
  2. Wählen Sie im Menü " Rolle löschen" aus, und bestätigen Sie den Löschvorgang.

Hinweis

Zum Verwalten von Datenbankrollen ist die CAN MANAGE oder CAN USE-Projektberechtigung erforderlich. Wenn Sie nicht über die erforderliche Berechtigung verfügen, wird beim Versuch einer rollenbezogenen Aktion eine Meldung "Berechtigungen erforderlich" angezeigt. Wenden Sie sich an einen Arbeitsbereichsadministrator, um den Zugriff anzufordern. Weitere Informationen finden Sie unter Verwalten von Projektberechtigungen.