Udostępnij przez


Zarządzanie rolami bazy danych Postgres

Ważne

Ta funkcja jest dostępna w wersji próbnej w następujących regionach: westus, westus2, eastus, eastus2, centralus, southcentralus, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, southeastasia, uksouth.

Rola Postgres dla tożsamości właściciela wystąpienia bazy danych usługi Azure Databricks w usłudze Lakebase jest tworzona automatycznie.

Początkowo tylko właściciel instancji może się zalogować i uzyskać dostęp do instancji przez Postgres. Aby umożliwić innym identyfikatorom Azure Databricks logowanie się do wystąpienia bazy danych, identyfikator Azure Databricks musi mieć odpowiednią rolę Postgres.

Na tej stronie opisano sposób dodawania dodatkowych ról opartych na tożsamościach usługi Azure Databricks i zarządzania nimi w usłudze PostgreSQL.

Tworzenie ról Postgres i przyznawanie uprawnień dla tożsamości Azure Databricks

Tworzenie ról Postgres przy użyciu interfejsu użytkownika usługi Azure Databricks lub zapytań PostgreSQL.

Uwaga / Notatka

Akcje zarządzania rolami podlegają uprawnieniam przyznanym w wystąpieniu bazy danych. Przed podjęciem próby zarządzania rolami upewnij się, że masz odpowiedni poziom dostępu.

interfejs użytkownika

Użytkownicy z uprawnieniami CAN USE do wystąpienia bazy danych mogą wyświetlać istniejące role Postgres skojarzone z tożsamościami usługi Azure Databricks lub dodawać rolę skojarzoną z własną tożsamością do wystąpienia.

Użytkownicy posiadający CAN MANAGE mogą dodatkowo tworzyć role dla innych tożsamości w usłudze Azure Databricks, przydzielając im dodatkowe uprawnienia, oraz usuwać role dla dowolnej tożsamości w usłudze Azure Databricks.

Dodatkowe uprawnienia można przypisać do dowolnych żądanych użytkowników, grup lub jednostek usługi na stronie przeglądu wystąpień bazy danych .

  1. Kliknij pozycję Obliczenia na pasku bocznym obszaru roboczego.

  2. Kliknij pozycję Wystąpienia bazy danych.

  3. Kliknij kartę Uprawnienia .

  4. Kliknij pozycję Dodaj rolę PostgreSQL w prawym górnym rogu.

  5. W polu Tożsamość obszaru roboczego wprowadź użytkownika, grupę lub jednostkę usługi i wybierz tożsamość usługi Azure Databricks. Należy wybrać tożsamość Azure Databricks, która nie ma jeszcze roli PostgreSQL w instancji.

  6. Wybierz członkostwo w roli. Jeśli masz CAN MANAGE uprawnienia do wystąpienia bazy danych, możesz dodać członkostwo do databricks_superuser roli i włączyć niektóre atrybuty roli.

  7. Wybierz atrybuty bazy danych PostgreSQL, które mają być przyznane nowej roli.

    • CREATEDB: udziela uprawnień do tworzenia nowych baz danych
    • CREATEROLE: przyznaje uprawnienia do tworzenia nowych ról
    • BYPASS RLS: przyznaje zezwolenie na ominięcie wszystkich zabezpieczeń na poziomie wiersza w wystąpieniu
  8. Kliknij przycisk Potwierdź.

PostgreSQL

Przed utworzeniem nowych ról bazy danych Postgres sprawdź, czy spełniono następujące wymagania:

  • Musisz mieć uprawnienia CREATE i CREATE ROLE w bazie danych.
  • Musisz uwierzytelnić się i zalogować się do usługi Postgres jako tożsamość usługi Azure Databricks (użytkownik, jednostka usługi lub grupa). Natywne sesje uwierzytelnione w usłudze Postgres nie mogą tworzyć ról usługi Azure Databricks.
  • Token uwierzytelniania musi być prawidłowy i nie wygasł w momencie tworzenia roli.

Użyj funkcji databricks_create_role, aby dodać i utworzyć role PostgreSQL oparte na tożsamościach w usłudze Azure Databricks. Niestandardowe rozszerzenie PostgreSQL databricks_auth udostępnia funkcję databricks_create_role.

  1. databricks_auth Utwórz rozszerzenie. Każda baza danych Postgres musi mieć własne rozszerzenie.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. Użyj funkcji databricks_create_role do dodawania i tworzenia nowych ról Postgres dla tożsamości usługi Azure Databricks. Rola nie może jeszcze istnieć. Jeśli rola o tej samej nazwie istnieje, usuń ją przed utworzeniem roli opartej na tożsamości usługi Azure Databricks.

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

    Parametry identity_name i identity_type zależą od typu tożsamości usługi Azure Databricks:

    • Użytkownik usługi Azure Databricks:

      • identity_name: adres e-mail użytkownika, np. myuser@databricks.com
      • typ_tożsamości: USER
      SELECT databricks_create_role('myuser@databricks.com','USER');
      
    • Jednostka usługi Azure Databricks:

      • identity_name: Identyfikator aplikacji głównego użytkownika usługi, np. 8c01cfb1-62c9-4a09-88a8-e195f4b01b08
      • typ_tożsamości: SERVICE_PRINCIPAL
      SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08','SERVICE_PRINCIPAL');
      
    • Grupa usługi Azure Databricks:

      • identity_name: nazwa grupy (jest uwzględniana wielkość liter): My Group 123
      • typ_tożsamości: GROUP
      SELECT databricks_create_role('My Group 123','GROUP');
      
  3. Rola utworzona przy użyciu databricks_create_role ma tylko uprawnienia przyznane do PUBLIC po utworzeniu. Aby udzielić lub odwołać dodatkowe uprawnienia, użyj standardowych poleceń GRANT zarządzania uprawnieniami Postgres i REVOKE.

    Nadaj roli uprawnienie do odczytu, aby uzyskać dostęp do tabeli.

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

    Usuń uprawnienia do zapisu w tabeli z roli.

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

    Cofnięcie wszystkich uprawnień do bazy danych dla danej roli.

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

Wyświetlanie ról tożsamościowych usługi Azure Databricks

interfejs użytkownika

Na stronie przeglądu wystąpień bazy danych można zobaczyć, którzy użytkownicy, grupy i jednostki usługi mają odpowiednią rolę Postgres.

  1. Kliknij pozycję Obliczenia na pasku bocznym obszaru roboczego.
  2. Kliknij pozycję Wystąpienia bazy danych.
  3. Kliknij kartę Uprawnienia .

PostgreSQL

Użyj zapytań PostgreSQL, aby wyświetlić listę ról tożsamości usługi Azure Databricks utworzonych domyślnie oraz za pomocą funkcji databricks_create_role i użyj funkcji databricks_list_roles w rozszerzeniu databricks_auth. Ta lista obejmuje wszystkich użytkowników, jednostki usługi i grupy dodane do Azure Databricks w celu uwierzytelnienia jako role Postgres.

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

Usuń rolę Postgres opartą na tożsamości Azure Databricks

interfejs użytkownika

Usunięcie roli nie może zostać cofnięte. Można ponownie utworzyć rolę, ale każde ponowne przypisanie własności obiektu nie jest odwracalne bez porzucania nowej roli, która jest właścicielem ponownie przypisanych obiektów.

  1. Kliknij pozycję Obliczenia na pasku bocznym obszaru roboczego.
  2. Kliknij pozycję Wystąpienia bazy danych.
  3. Kliknij kartę Uprawnienia .
  4. W przypadku tożsamości roli, którą chcesz usunąć, po prawej stronie kliknij ikonę menu Kebab.
  5. Kliknij Usuń rolę.
  6. Jeśli musisz usunąć rolę będącą właścicielem obiektów, włącz opcję Przypisz ponownie obiekty należące do użytkownika. Spowoduje to ponowne przypisanie wszystkich ponownie przypisanych obiektów należących (baz danych, schematów i tabel) do innej roli, a następnie porzucanie wszystkich obiektów będących własnością nieprzypisaną.
  7. Kliknij przycisk Potwierdź.

PostgreSQL

Rolę Postgres opartą na tożsamości w Azure Databricks można usunąć w taki sam sposób, jak każdą inną rolę Postgres. Aby uzyskać więcej informacji, zobacz dokumentację bazy danych PostgreSQL dotyczącą usuwania ról. Po usunięciu roli opartej na tożsamości usługi Azure Databricks nie można jej używać do uwierzytelniania opartego na tokenach i uzyskiwania dostępu do bazy danych Postgres.