Freigeben über


Verwalten von Postgres-Rollen

Von Bedeutung

Dieses Feature befindet sich in der öffentlichen Vorschau in den folgenden Regionen: westus, westus2, eastus, eastus2, centralus, southcentralus, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, southeastasia, uksouth.

Eine Postgres-Rolle für die Azure Databricks-Identität des Lakebase-Datenbankinstanzbesitzers wird automatisch erstellt.

Zunächst kann sich nur der Besitzer der Instanz anmelden und über Postgres auf die Instanz zugreifen. Damit sich andere Azure Databricks-Identitäten bei der Datenbankinstanz anmelden können, muss die Azure Databricks-Identität über eine entsprechende Postgres-Rolle verfügen.

Auf dieser Seite wird beschrieben, wie Sie zusätzliche identitätsbasierte Azure Databricks-Rollen in PostgreSQL hinzufügen und verwalten.

Erstellen von Postgres-Rollen und Gewähren von Berechtigungen für Azure Databricks-Identitäten

Erstellen Sie Postgres-Rollen mithilfe der Azure Databricks-UI- oder PostgreSQL-Abfragen.

Hinweis

Rollenverwaltungsaktionen unterliegen den Berechtigungen, die für die Datenbankinstanz gewährt werden. Stellen Sie sicher, dass Sie über die entsprechende Zugriffsebene verfügen, bevor Sie versuchen, Rollen zu verwalten.

Benutzeroberfläche

Benutzer, CAN USE die über die Berechtigung für die Datenbankinstanz verfügen, können die vorhandenen Postgres-Rollen anzeigen, die Azure Databricks-Identitäten zugeordnet sind, oder der Instanz eine Rolle für ihre eigene Identität hinzufügen.

Benutzer mit CAN MANAGE können zusätzlich Rollen für andere Azure Databricks-Identitäten erstellen, einschließlich zusätzlicher Berechtigungen und Drop-Rollen für jede Azure Databricks-Identität.

Auf der Übersichtsseite "Datenbankinstanzen " können Sie allen gewünschten Benutzern, Gruppen oder Dienstprinzipalen zusätzliche Berechtigungen zuweisen.

  1. Klicken Sie auf " Berechnen" in der Arbeitsbereich-Randleiste.

  2. Klicken Sie auf Datenbankinstanzen.

  3. Klicken Sie auf die Registerkarte Berechtigungen.

  4. Klicken Sie oben rechts auf die Rolle "PostgreSQL hinzufügen ".

  5. Geben Sie für Arbeitsbereichsidentität einen Benutzer, eine Gruppe oder einen Dienstprinzipal ein, und wählen Sie die Azure Databricks-Identität aus. Sie müssen eine Azure Databricks-Identität auswählen, die noch keine Postgres-Rolle in der Instanz hat.

  6. Wählen Sie eine Rollenmitgliedschaft aus. Wenn Sie über die Berechtigung für die Datenbankinstanz verfügen CAN MANAGE , können Sie der databricks_superuser Rolle Mitgliedschaft hinzufügen und einige Rollenattribute aktivieren.

  7. Wählen Sie aus, welche PostgreSQL-Attribute der neuen Rolle gewährt werden sollen.

    • CREATEDB: erteilt berechtigungen zum Erstellen neuer Datenbanken
    • CREATEROLE: erteilt die Berechtigung zum Erstellen neuer Rollen
    • BYPASS RLS: gewährt die Berechtigung zur Umgehung aller Sicherheitsmaßnahmen auf Zeilenebene in der Instanz
  8. Klicken Sie auf Bestätigen.

PostgreSQL

Bevor Sie neue Postgres-Rollen erstellen, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen:

  • Sie müssen die Berechtigungen CREATE und CREATE ROLE an der Datenbank besitzen.
  • Sie müssen sich authentifizieren und sich bei Postgres als Azure Databricks-Identität (Benutzer, Dienstprinzipal oder Gruppe) anmelden. Authentifizierte Native Postgres-Sitzungen können keine Azure Databricks-Rollen erstellen.
  • Ihr Authentifizierungstoken muss gültig und nicht zum Zeitpunkt der Rollenerstellung abgelaufen sein.

Verwenden Sie die databricks_create_role Funktion, um Identitätsbasierte Azure Databricks-Rollen hinzuzufügen und zu erstellen. Die benutzerdefinierte PostgreSQL-Erweiterung databricks_auth stellt die databricks_create_role Funktion bereit.

  1. Erstellen Sie die databricks_auth Erweiterung. Jede Postgres-Datenbank muss über eine eigene Erweiterung verfügen.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. Verwenden Sie die databricks_create_role Funktion, um neue Postgres-Rollen für Azure Databricks-Identitäten hinzuzufügen und zu erstellen. Die Rolle darf noch nicht vorhanden sein. Wenn eine Rolle mit demselben Namen vorhanden ist, legen Sie sie ab, bevor Sie die identitätsbasierte Azure Databricks-Rolle erstellen.

    SELECT databricks_create_role('identity_name', 'identity_type');
    

    Parameter identity_name und identity_type sind vom Identitätstyp "Azure Databricks" abhängig.

    • Azure Databricks-Benutzer:

      • identity_name: E-Mail des Benutzers z.B. myuser@databricks.com
      • identitätstyp: USER
      SELECT databricks_create_role('myuser@databricks.com','USER');
      
    • Azure Databricks-Dienstprinzipal:

      • identity_name: Anwendungs-ID des Dienstprinzipals z. B. 8c01cfb1-62c9-4a09-88a8-e195f4b01b08
      • identitätstyp: SERVICE_PRINCIPAL
      SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08','SERVICE_PRINCIPAL');
      
    • Azure Databricks-Gruppe:

      • identity_name: Name der Gruppe (beachten Sie die Groß-/Kleinschreibung): My Group 123
      • identitätstyp: GROUP
      SELECT databricks_create_role('My Group 123','GROUP');
      
  3. Eine mithilfe von databricks_create_role erstellte Rolle verfügt nur über die Berechtigungen, die ihr nach der Erstellung durch PUBLIC gewährt werden. Um zusätzliche Berechtigungen zu gewähren oder zu widerrufen, verwenden Sie die standardbefehle GRANT für die Verwaltung von Postgres-Berechtigungen und REVOKE.

    Erteilen Sie der Rolle Leseberechtigung für den Zugriff auf eine Tabelle.

    GRANT SELECT ON "my_schema"."my_table" TO <role-name>;
    

    Entfernen Sie den Schreibzugriff auf eine Tabelle aus der Rolle.

    REVOKE INSERT, UPDATE, DELETE ON TABLE "my_schema"."my_table" FROM <role-name>;
    

    Entziehen Sie der Rolle den gesamten Zugriff auf eine Datenbank.

    REVOKE CONNECT ON DATABASE "example_database" FROM <role-name>;
    

Anzeigen von Azure Databricks-Identitätsrollen

Benutzeroberfläche

Sie können sehen, welche Benutzer, Gruppen und Dienstprinzipale eine entsprechende Postgres-Rolle auf der Übersichtsseite der Datenbankinstanzen haben.

  1. Klicken Sie auf " Berechnen" in der Arbeitsbereich-Randleiste.
  2. Klicken Sie auf Datenbankinstanzen.
  3. Klicken Sie auf die Registerkarte Berechtigungen.

PostgreSQL

Verwenden Sie PostgreSQL-Abfragen, um alle standardmäßig erstellten Azure Databricks Identitätsrollen aufzulisten, und verwenden Sie ab der databricks_create_role-Funktion die databricks_list_roles-Funktion in der databricks_auth-Erweiterung. Dies listet alle Azure Databricks-Benutzer, Dienstprinzipale und Gruppen auf, die zur Authentifizierung als Postgres-Rollen hinzugefügt wurden.

CREATE EXTENSION IF NOT EXISTS databricks_auth;
SELECT * from databricks_list_roles;

Löschen einer Azure Databricks-Identitätsbasierten Postgres-Rolle

Benutzeroberfläche

Das Verwerfen einer Rolle kann nicht rückgängig gemacht werden. Sie können eine Rolle neu erstellen, aber jede Objektbesitzerzuordnung ist nicht umkehrbar, ohne die neue Rolle zu löschen, die neu zugewiesene Objekte besitzt.

  1. Klicken Sie auf " Berechnen" in der Arbeitsbereich-Randleiste.
  2. Klicken Sie auf Datenbankinstanzen.
  3. Klicken Sie auf die Registerkarte Berechtigungen.
  4. Klicken Sie für die Rollenidentität, die Sie ablegen möchten, auf der rechten Seite auf das Kebab-Menüsymbol.
  5. Klicken Sie auf Rolle löschen.
  6. Wenn Sie eine Rolle ablegen müssen, die Objekte besitzt, aktivieren Sie " Eigene Objekte neu zuweisen". Dadurch werden alle neu zuweisbaren Objekte (Datenbanken, Schemen und Tabellen) der anderen Rolle neu zugewiesen und anschließend alle nicht neu zuweisbaren Objekte entfernt.
  7. Klicken Sie auf Bestätigen.

PostgreSQL

Eine identitätsbasierte Azure Databricks-Rolle kann gelöscht und entfernt werden, wie jede andere Postgres-Rolle. Weitere Details finden Sie in der PostgreSQL-Dokumentation zum Ablegen von Rollen. Nachdem eine identitätsbasierte Azure Databricks-Rolle verworfen wurde, kann sie nicht für die tokenbasierte Authentifizierung und den Zugriff auf Postgres verwendet werden.