Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Skalowanie automatyczne bazy danych Lakebase znajduje się w wersji beta w następujących regionach: eastus2, westeurope, westus.
Autoskalowanie bazy danych Lakebase to najnowsza wersja bazy danych Lakebase z automatycznym skalowaniem obliczeniowym, skalowaniem do zera, rozgałęzianiem i natychmiastowym przywracaniem. Aby zapoznać się z porównaniem funkcji z Lakebase Provisioned, sprawdź wybieranie między wersjami.
Podczas tworzenia projektu usługa Lakebase tworzy kilka ról Postgres w projekcie:
- Rola Postgres dla tożsamości właściciela projektu Azure Databricks (na przykład
user@databricks.com), która jest właścicielem domyślnejdatabricks_postgresbazy danych - Rola administracyjna
databricks_superuser
Baza danych databricks_postgres jest tworzona, aby można było nawiązać połączenie i wypróbować Lakebase natychmiast po utworzeniu projektu.
Tworzone są również kilka ról zarządzanych przez system. Są to role wewnętrzne używane przez usługi Azure Databricks do zarządzania, monitorowania i operacji na danych.
Uwaga / Notatka
Role postgres kontrolują dostęp do bazy danych (kto może wykonywać zapytania dotyczące danych). Aby uzyskać uprawnienia projektu (kto może zarządzać infrastrukturą), zobacz Uprawnienia projektu. Aby zapoznać się z samouczkiem dotyczącym konfigurowania obu tych elementów, zobacz Samouczek: udzielanie projektowi i bazie danych dostępu do nowego użytkownika.
Zobacz Wstępnie utworzone role i role systemowe.
Tworzenie ról Postgres
Usługa Lakebase obsługuje dwa typy ról Postgres na potrzeby dostępu do bazy danych:
-
Role OAuth dla tożsamości Azure Databricks: Należy je utworzyć za pomocą
databricks_authrozszerzenia i języka SQL. Umożliwia tożsamościom usługi Azure Databricks (użytkownikom, jednostkom usługi i grupom) nawiązywanie połączenia przy użyciu tokenów OAuth. - Natywne role haseł Postgres: Utwórz je przy użyciu interfejsu użytkownika usługi Lakebase lub bazy danych SQL. Użyj dowolnej prawidłowej nazwy roli z uwierzytelnianiem haseł.
Aby uzyskać wskazówki dotyczące wybierania typu roli do użycia, zobacz Omówienie uwierzytelniania. Każda z nich jest przeznaczona dla różnych przypadków użycia.
Tworzenie roli OAuth dla tożsamości usługi Azure Databricks przy użyciu języka SQL
Aby umożliwić tożsamościom usługi Azure Databricks (użytkownikom, jednostkom usługi lub grupom) nawiązywanie połączenia przy użyciu tokenów OAuth, należy utworzyć ich role Postgres przy użyciu databricks_auth rozszerzenia . Utworzenie roli dla grupy umożliwia wszystkim członkom grupy uwierzytelnianie przy użyciu roli grupy, co upraszcza zarządzanie uprawnieniami.
Aby uzyskać szczegółowe instrukcje dotyczące uzyskiwania tokenów OAuth w przepływach typu użytkownik-maszyna i maszyna-maszyna, zobacz Uzyskiwanie tokenu OAuth w przepływie typu użytkownik-komputer i Uzyskiwanie tokenu OAuth w przepływie typu maszyna-maszyna w dokumentacji uwierzytelniania.
Wymagania wstępne:
- Musisz mieć uprawnienia
CREATEiCREATE ROLEw bazie danych - Musisz być uwierzytelniony jako tożsamość Azure Databricks z prawidłowym tokenem OAuth
- Natywne sesje uwierzytelnione w usłudze Postgres nie mogą tworzyć ról protokołu OAuth
Aby utworzyć rolę OAuth:
databricks_authUtwórz rozszerzenie. Każda baza danych Postgres musi mieć własne rozszerzenie.CREATE EXTENSION IF NOT EXISTS databricks_auth;Użyj funkcji
databricks_create_role, aby utworzyć rolę Postgres dla tożsamości usługi Azure Databricks.SELECT databricks_create_role('identity_name', 'identity_type');W przypadku użytkownika usługi Azure Databricks:
SELECT databricks_create_role('myuser@databricks.com', 'USER');W przypadku aplikacji Azure Databricks:
SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');W przypadku grupy usługi Azure Databricks:
SELECT databricks_create_role('My Group Name', 'GROUP');Nazwa grupy uwzględnia wielkość liter i musi być dokładnie taka, jaka jest wyświetlana w obszarze roboczym usługi Azure Databricks. Podczas tworzenia roli Postgres dla grupy każdy bezpośredni lub pośredni członek (użytkownik lub jednostka usługi) tej grupy usługi Databricks może uwierzytelnić się w usłudze Postgres jako rolę grupy przy użyciu ich indywidualnego tokenu OAuth. Dzięki temu można zarządzać uprawnieniami na poziomie grupy w usłudze Postgres zamiast utrzymywania uprawnień dla poszczególnych użytkowników.
Udziel uprawnień bazy danych do nowo utworzonej roli.
Funkcja databricks_create_role() tworzy rolę Postgres tylko z uprawnieniami LOGIN . Po utworzeniu roli należy przyznać odpowiednie uprawnienia i uprawnienia bazy danych do określonych baz danych, schematów lub tabel, do których użytkownik musi uzyskać dostęp. Dowiedz się, jak zarządzać uprawnieniami
Uwierzytelnianie oparte na grupach
Podczas tworzenia roli Postgres dla grupy usługi Azure Databricks należy włączyć uwierzytelnianie oparte na grupach. Dzięki temu dowolny członek grupy usługi Azure Databricks może uwierzytelniać się w usłudze Postgres przy użyciu roli grupy, co upraszcza zarządzanie uprawnieniami.
Jak to działa:
- Utwórz rolę Postgres dla grupy Databricks za pomocą
databricks_create_role('Group Name', 'GROUP'). - Przypisz uprawnienia do bazy danych roli grupowej w PostgreSQL. Zobacz Zarządzanie uprawnieniami.
- Dowolny bezpośredni lub pośredni członek (użytkownik lub jednostka usługi) grupy usługi Databricks może łączyć się z usługą Postgres przy użyciu ich indywidualnego tokenu OAuth.
- Podczas nawiązywania połączenia członek uwierzytelnia się jako rolę grupy i dziedziczy wszystkie uprawnienia przyznane tej roli.
Przepływ uwierzytelniania:
Gdy członek grupy nawiązuje połączenie, określa nazwę roli Postgres grupy jako nazwę użytkownika i własny token OAuth jako hasło:
export PGPASSWORD='<OAuth token of a group member>'
export GROUP_ROLE_NAME='<pg-case-sensitive-group-role-name>'
psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUP_ROLE_NAME
Ważne zagadnienia:
- Walidacja członkostwa w grupie: Członkostwo w grupie jest weryfikowane tylko w czasie uwierzytelniania. Jeśli członek zostanie usunięty z grupy usługi Azure Databricks po nawiązaniu połączenia, połączenie pozostanie aktywne. Nowe próby połączenia podejmowane przez usuniętych członków są odrzucane.
- Określanie zakresu obszaru roboczego: Tylko grupy przypisane do tego samego obszaru roboczego usługi Azure Databricks co projekt są obsługiwane na potrzeby uwierzytelniania opartego na grupach. Aby dowiedzieć się, jak przypisywać grupy do obszaru roboczego, zobacz Zarządzanie grupami.
-
Czułość wielkości liter: Nazwa grupy używana w
databricks_create_role()musi się dokładnie zgadzać z nazwą grupy wyświetlaną w obszarze roboczym Azure Databricks, łącznie z wielkością liter. - Zarządzanie uprawnieniami: Zarządzanie uprawnieniami na poziomie grupy w usłudze Postgres jest bardziej wydajne niż zarządzanie poszczególnymi uprawnieniami użytkowników. Po udzieleniu uprawnień do roli grupy wszyscy obecni i przyszli członkowie grupy automatycznie dziedziczą te uprawnienia.
Uwaga / Notatka
Nazwy ról nie mogą przekraczać 63 znaków, a niektóre nazwy nie są dozwolone. Dowiedz się więcej: Zarządzanie rolami
Tworzenie natywnej roli hasła Postgres
Możesz utworzyć natywne role haseł Postgres przy użyciu interfejsu użytkownika usługi Lakebase lub standardowych poleceń SQL.
Korzystanie z interfejsu użytkownika:
- W aplikacji Lakebase przejdź do strony przeglądu oddziału, a następnie do karty Role i bazy danych tego oddziału.
- Kliknij pozycję Dodaj rolę i określ nazwę roli (dowolną prawidłową nazwę roli Postgres).
- Kliknij pozycję Utwórz.
- Skopiuj wygenerowane hasło i podaj je bezpiecznie użytkownikowi, który będzie używać tej roli.
Interfejs użytkownika usługi Lakebase automatycznie generuje bezpieczne hasło z 60-bitową entropią. Role użytkownika utworzone za pośrednictwem interfejsu użytkownika automatycznie uzyskują członkostwo w roli databricks_superuser, która zapewnia rozległe uprawnienia do bazy danych.
Korzystanie z języka SQL:
Możesz również utworzyć natywne role haseł Postgres przy użyciu standardowych poleceń Postgres SQL:
CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';
Podczas tworzenia ról przy użyciu języka SQL hasło powinno zawierać co najmniej 12 znaków z kombinacją małych liter, wielkich liter, cyfr i symboli. Hasła zdefiniowane przez użytkownika są weryfikowane w czasie tworzenia w celu zapewnienia 60-bitowej entropii.
Wyświetlanie ról bazy danych Postgres
interfejs użytkownika
Aby wyświetlić wszystkie role postgres w projekcie, przejdź do karty Role i bazy danych gałęzi w aplikacji Lakebase. Wszystkie role utworzone w gałęzi, z wyjątkiem ról systemowych, są wymienione, w tym natywne role Postgres z uwierzytelnianiem haseł.
PostgreSQL
Wyświetl wszystkie role za pomocą \du polecenia:
Wszystkie role bazy danych Postgres, w tym role systemowe, można wyświetlić za pomocą \du meta-polecenia z dowolnego klienta Postgres (takiego jak psql) lub edytora SQL usługi Lakebase:
\du
List of roles
Role name | Attributes
-----------------------------+------------------------------------------------------------
cloud_admin | Superuser, Create role, Create DB, Replication, Bypass RLS
my.user@databricks.com | Create role, Create DB, Bypass RLS
databricks_control_plane | Superuser
databricks_gateway |
databricks_monitor |
databricks_reader_12345 | Create role, Create DB, Replication, Bypass RLS
databricks_replicator | Replication
databricks_superuser | Create role, Create DB, Cannot login, Bypass RLS
databricks_writer_12345 | Create role, Create DB, Replication, Bypass RLS
Spowoduje to wyświetlenie wszystkich ról i ich atrybutów (Superużytkownik, Tworzenie roli, Tworzenie bazy danych itp.).
Usuń rolę Postgres
Możesz usunąć zarówno role oparte na tożsamościach Databricks, jak i role uwierzytelniane hasłem Postgres.
interfejs użytkownika
Usuwanie roli jest trwałą akcją, której nie można cofnąć. Nie można usunąć roli, która jest właścicielem bazy danych. Przed usunięciem roli będącej właścicielem bazy danych należy usunąć bazę danych.
Aby usunąć dowolną rolę Postgres przy użyciu interfejsu użytkownika:
- Przejdź do karty Role i bazy danych oddziału w aplikacji Lakebase.
- Wybierz pozycję Usuń rolę z menu roli i potwierdź usunięcie.
PostgreSQL
Możesz usunąć dowolną rolę Postgres przy użyciu standardowych poleceń Postgres. Aby uzyskać szczegółowe informacje, zobacz dokumentację bazy danych PostgreSQL dotyczącą usuwania ról.
Usuwanie roli:
DROP ROLE role_name;
Po usunięciu roli opartej na tożsamości usługi Azure Databricks tożsamość ta nie może już uwierzytelniać się w usłudze Postgres przy użyciu tokenów OAuth do momentu utworzenia nowej roli.
Wstępnie utworzone role
Po utworzeniu projektu usługa Azure Databricks automatycznie tworzy role Postgres na potrzeby administrowania projektem i rozpoczynania pracy.
| Role | Description | Uprawnienia dziedziczone |
|---|---|---|
<project_owner_role> |
Tożsamość twórcy projektu w usłudze Azure Databricks (na przykład my.user@databricks.com). Ta rola jest właścicielem domyślnej databricks_postgres bazy danych i może logować się i administrować projektem. |
Członek databricks_superuser |
databricks_superuser |
Wewnętrzna rola administracyjna. Służy do konfigurowania dostępu w projekcie i zarządzania nim. Ta rola ma szerokie uprawnienia. | Dziedziczy z pg_read_all_data, pg_write_all_data, i pg_monitor. |
Dowiedz się więcej o określonych możliwościach i uprawnieniach tych ról: Możliwości ról utworzonych wstępnie
Role systemowe utworzone przez usługę Azure Databricks
Usługa Azure Databricks tworzy następujące role systemowe wymagane dla usług wewnętrznych. Te role można wyświetlić, wydając polecenie \du z psql menu lub Edytora SQL Lakebase.
| Role | Przeznaczenie |
|---|---|
cloud_admin |
Rola superużytkownika używana do zarządzania infrastrukturą w chmurze |
databricks_control_plane |
Rola superużytkownika używana przez wewnętrzne składniki usługi Databricks na potrzeby operacji zarządzania |
databricks_monitor |
Używane przez wewnętrzne usługi zbierania metryk |
databricks_replicator |
Używane na potrzeby operacji replikacji bazy danych |
databricks_writer_<dbid> |
Rola w bazie danych używana do tworzenia i zarządzania zsynchronizowanymi tabelami. |
databricks_reader_<dbid> |
Rola na poziomie bazy danych, używana do odczytu tabel zarejestrowanych w Unity Catalog |
databricks_gateway |
Używane do połączeń wewnętrznych dla zarządzanych usług obsługujących dane |
Aby dowiedzieć się, jak role, uprawnienia i członkostwa w rolach działają w usłudze Postgres, skorzystaj z następujących zasobów w dokumentacji bazy danych Postgres: