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.
Dowiedz się, jak skonfigurować nowego użytkownika z dostępem do projektu i bazy danych usługi Lakebase. W tym samouczku omówiono zarówno uprawnienia na poziomie projektu (do zarządzania zasobami usługi Lakebase) jak i uprawnienia na poziomie bazy danych (na potrzeby uzyskiwania dostępu do danych za pośrednictwem bazy danych Postgres).
Informacje o dwóch systemach uprawnień
Baza danych Lakebase Postgres używa dwóch warstw uprawnień:
Uprawnienia projektu (ACL): kontrolowanie akcji na poziomie platformy, takich jak tworzenie gałęzi, zarządzanie obliczeniami i zarządzanie ustawieniami projektu. Są one zarządzane za pośrednictwem aplikacji Lakebase.
Uprawnienia roli Postgres: kontrola dostępu do danych w samej bazie danych. Są one zarządzane za pomocą standardowych poleceń Postgres
GRANT.
Te systemy nie mają automatycznej synchronizacji. Te uprawnienia można udzielić niezależnie lub razem, w zależności od wymagań organizacji:
- Przyznaj obie warstwy użytkownikom, którzy potrzebują dostępu do platformy i dostępu do bazy danych.
- Przyznaj tylko uprawnienia do projektu użytkownikom, którzy zarządzają infrastrukturą, ale nie muszą wykonywać zapytań dotyczących danych.
- Udziel dostępu tylko do bazy danych użytkownikom, którzy muszą wykonywać zapytania dotyczące danych, ale nie muszą zarządzać zasobami usługi Lakebase (mogą łączyć się przy użyciu narzędzi, takich jak
psqlze szczegółami połączenia).
W tym samouczku pokazano, jak skonfigurować obie warstwy dostępu:
- Udziel uprawnień projektu, aby użytkownicy mogli pracować z zasobami platformy Lakebase (w tym samouczku jest używana funkcja CAN MANAGE w celu uzyskania pełnego dostępu, a także można udzielić funkcji CAN USE na potrzeby dostępu tylko do wyświetlania i używania)
- Tworzenie roli Postgres z odpowiednimi uprawnieniami bazy danych na potrzeby nawiązywania połączenia z bazą danych i wykonywania zapytań względem bazy danych
Uprawnienia domyślne
Wszyscy użytkownicy obszaru roboczego domyślnie dziedziczą uprawnienia CAN CREATE, co umożliwia wyświetlanie i tworzenie projektów. Aby udzielić dodatkowego dostępu do zasobów i baz danych projektu, musisz jawnie przypisać metodę CAN USE lub CAN MANAGE.
Wymagania wstępne
- Projekt usługi Lakebase z bazą danych
- Administrator obszaru roboczego lub uprawnienia do zarządzania projektem
- Tożsamość użytkownika Azure Databricks (adres e-mail) w tym samym obszarze roboczym, w którym został utworzony projekt.
Scenariusz: Dodawanie analityka danych z dostępem do odczytu i zapisu
Przejdźmy przez proces dodawania analityka danych o nazwie Alex Lopez , który potrzebuje:
- Możliwość tworzenia gałęzi, obliczeń i baz danych (CAN MANAGE) i zarządzania nimi
- Dostęp do odczytu i zapisu w tabelach w schemacie
publicbazy danych Postgres - Możliwość tworzenia nowych tabel na potrzeby analizy
Krok 1. Udzielanie uprawnień projektu
Najpierw przyznaj użytkownikowi uprawnienie CAN MANAGE, aby mógł wykonywać akcje zarządzania projektami.
- Przejdź do projektu w aplikacji Lakebase.
- Kliknij pozycję Ustawienia na pasku bocznym po lewej stronie.
- Przewiń do sekcji Uprawnienia projektu .
- Kliknij pozycję Udziel uprawnienia.
- Wyszukaj i wybierz użytkownika.
- Wybierz uprawnienie MOŻE ZARZĄDZAĆ.
- Kliknij Grant.
Na co POZWALA CAN MANAGE:
- Tworzenie i usuwanie gałęzi
- Zarządzanie obliczeniami i konfigurowanie ustawień projektu
- Tworzenie baz danych i ról Postgres i zarządzanie nimi
- Pełna kontrola nad operacjami projektu
Uwaga / Notatka
FUNKCJA CAN MANAGE udziela pełnej kontroli nad projektem, w tym wielu innych działań. FUNKCJA CAN USE umożliwia wyświetlanie i używanie zasobów (lista, widok, uzyskiwanie identyfikatora URI połączenia i niektórych operacji gałęzi) bez pełnego zarządzania. Aby uzyskać pełną listę wszystkich poziomów uprawnień i określonych akcji, które zezwalają, zobacz ACL projektu Lakebase.
Krok 2. Tworzenie roli Postgres dla użytkownika
Teraz utwórz rolę OAuth, która umożliwia Alexowi uwierzytelnianie przy użyciu tożsamości usługi Azure Databricks przy użyciu tokenów OAuth. Jako właściciel projektu masz uprawnienia niezbędne do tworzenia ról.
Otwórz Edytor SQL usługi Lakebase i połącz się z projektem.
databricks_authUtwórz rozszerzenie (jeśli nie jest jeszcze włączone):CREATE EXTENSION IF NOT EXISTS databricks_auth;databricks_create_roleUżyj funkcji , aby utworzyć rolę OAuth Postgres dla Alexa:SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
Spowoduje to utworzenie roli OAuth, która:
- Ma identyczną nazwę jak Azure Databricks (
alex.lopez@databricks.com) - Może uwierzytelniać się przy użyciu tokenów OAuth
- Ma uprawnienia logowania
- Nie ma jeszcze uprawnień bazy danych (przydzielimy je dalej)
Uwaga / Notatka
Informacje o rolach protokołu OAuth:
- Role OAuth uwierzytelniają się przy użyciu tokenów ograniczonych czasowo (wygasają po 1 godzinie)
- Użytkownicy uzyskują tokeny z okna dialogowego połączenia aplikacji Lakebase
- Najlepiej nadaje się do interaktywnych sesji i przepływów pracy zintegrowanych z przestrzenią roboczą.
- Aby uzyskać więcej informacji, zobacz About authentication (Informacje o uwierzytelnianiu)
Krok 3. Udzielanie uprawnień bazy danych Postgres
Teraz przyznaj alexowi potrzebne uprawnienia bazy danych. Zapewnimy im dostęp do odczytu i zapisu w schemacie public .
-- 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";
Jakie są następujące uprawnienia:
-
CONNECT: Nawiązywanie połączenia z bazą danych -
USAGEw schemacie: Dostęp do obiektów w schemacie -
CREATEw schemacie: Tworzenie nowych tabel, widoków, funkcji -
SELECT, INSERT, UPDATE, DELETEw tabelach: odczytywanie i zapisywanie danych - Uprawnienia sekwencji: użyj kolumn autoinkrementacji
Krok 4. Testowanie połączenia
Niech Alex zweryfikuje, czy może nawiązać połączenie z bazą danych i uzyskać do niej dostęp.
Za pomocą edytora SQL Lakebase:
Alex otwiera aplikację Lakebase i przechodzi do projektu.
Alex otwiera edytor SQL Lakebase.
W edytorze SQL Alex powinien mieć możliwość uruchomienia następujących zapytań w celu zweryfikowania uprawnień:
-- 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() );
Alternatywnie przy użyciu narzędzia psql:
Alex może również nawiązać połączenie z narzędzi zewnętrznych, takich jak psql:
- Na pulpicie nawigacyjnym projektu kliknij pozycję Połącz.
- Wybierz gałąź, zasoby obliczeniowe i bazę danych.
- Z listy rozwijanej Role wybierz pozycję
alex.lopez@databricks.com. -
psqlSkopiuj fragment kodu połączenia. - Kliknij pozycję Kopiuj token OAuth , aby uzyskać token uwierzytelniania.
- Połącz się przy użyciu skopiowanego
psqlpolecenia i wprowadź token OAuth po wyświetleniu monitu o hasło. - Uruchom te same zapytania weryfikacyjne pokazane powyżej.
Alternatywa: dostęp do bazy danych tylko do odczytu
W przypadku użytkowników, którzy muszą wykonywać zapytania dotyczące danych bez ich modyfikowania, przyznaj te same uprawnienia projektu, ale użyj bardziej restrykcyjnych uprawnień bazy danych:
Uprawnienia projektu
Udziel CAN USE dostępu do projektów tylko do przeglądania i użytkowania (np. URI połączenia, lista gałęzi). Przyznaj uprawnienie CAN MANAGE, aby umożliwić tworzenie baz danych, ról i innych operacji projektu.
Uprawnienia bazy danych
-- 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";
To przyznaje:
- Dostęp do odczytu wszystkich tabel
- Wyświetl strukturę bazy danych
- Nie można modyfikować danych (brak INSERT, UPDATE, DELETE)
- Nie można utworzyć tabel ani innych obiektów
Praca z grupami i jednostkami usługi
Możesz wykonać ten sam proces, aby udzielić dostępu do grup i jednostek usługi Azure Databricks. Udziel uprawnień projektu za pomocą interfejsu użytkownika aplikacji Lakebase, utwórz role OAuth przy użyciu metody databricks_create_role()i przyznaj uprawnienia bazy danych. Aby uzyskać więcej informacji, zobacz Grupy i Service principals.
Używanie natywnych ról haseł Postgres
Alternatywą dla ról OAuth jest tworzenie natywnych ról haseł Postgres dla aplikacji, które nie mogą odświeżać tokenów co godzinę, długotrwałych procesów lub narzędzi zewnętrznych, które nie obsługują protokołu OAuth. Aby uzyskać instrukcje dotyczące tworzenia ról haseł i zarządzania nimi, zobacz Zarządzanie rolami bazy danych Postgres.