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
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.
Na tej stronie opisano sposób uwierzytelniania dla wystąpienia bazy danych Lakebase. Istnieją dwa sposoby uwierzytelniania:
- Uzyskiwanie tokenu OAuth i uwierzytelnianie przy użyciu tożsamości usługi Azure Databricks.
- Używaj natywnych ról Postgres z hasłami.
Uwierzytelnianie za pomocą tożsamości usługi Azure Databricks
Podczas uwierzytelniania jako użytkownik usługi Azure Databricks należy wygenerować token OAuth i użyć go jako hasła do nawiązywania połączenia z Postgres.
Zagadnienia przed rozpoczęciem
Tokeny OAuth wygasają po godzinie, ale wygaśnięcie jest wymuszane tylko podczas logowania. Otwarte połączenia pozostają aktywne, nawet jeśli token wygaśnie. Jednak każde polecenie PostgreSQL wymagające uwierzytelnienia kończy się niepowodzeniem, jeśli token wygasł.
Tokeny OAuth używane do uwierzytelniania Postgres są związane z zakresem obszaru roboczego i powinny należeć do tego samego obszaru roboczego, co baza danych. Uwierzytelnianie tokenu między obszarami roboczymi nie jest obsługiwane. Aby dowiedzieć się więcej na temat uwierzytelniania, zobacz Uwierzytelnianie dla interfejsu wiersza polecenia Databricks (Authentication for the Databricks CLI).
Uwierzytelnianie oparte na tokenach wymaga hasła w postaci zwykłego tekstu, więc dozwolone są tylko połączenia SSL. Upewnij się, że biblioteka klienta używana do uzyskiwania dostępu do bazy danych Postgres z uwierzytelnianiem opartym na tokenach jest skonfigurowana do nawiązywania połączenia SSL.
Uzyskiwanie tokenu OAuth w przepływie typu użytkownik-maszyna
Jeśli jesteś właścicielem bazy danych, administratorem lub twoja tożsamość w Azure Databricks posiada odpowiadającą rolę Postgres dla wystąpienia bazy danych, możesz uzyskać token OAuth z interfejsu użytkownika, CLI Databricks lub jednego z SDK Databricks. Zakres tokenu można odpowiednio ograniczyć przy użyciu interfejsu wiersza polecenia usługi Databricks.
W przypadku innych użytkowników tożsamości usługi Azure Databricks zobacz Autoryzowanie dostępu użytkowników do usługi Azure Databricks przy użyciu protokołu OAuth , aby uzyskać instrukcje autoryzacji na poziomie obszaru roboczego w celu uzyskania tokenów OAuth.
interfejs użytkownika
Gdy stan wystąpienia bazy danych jest dostępny, użyj interfejsu użytkownika usługi Azure Databricks, aby uzyskać token OAuth:
- Kliknij Comput na pasku bocznym obszaru roboczego i kliknij kartę Lakebase Provisioned.
- Znajdź i kliknij nazwę wystąpienia bazy danych, dla którego chcesz uzyskać token OAuth.
- Kliknij kartę Szczegóły połączenia.
- Kliknij pozycję Pobierz token OAuth. Flaga wskazuje, kiedy token został utworzony.
- Kliknij Kopiuj OAuthToken, aby skopiować token do schowka.
CLI
Gdy stan wystąpienia bazy danych jest dostępny, użyj CLI Databricks w wersji 0.256.0 lub nowszej, aby uzyskać token OAuth:
- Użyj następującego polecenia, aby pobrać token.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }' - Spowoduje to wygenerowanie odpowiedzi w następującym formacie. Skopiuj element
tokenz odpowiedzi.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Aby uzyskać więcej informacji o korzystaniu z interfejsu wiersza polecenia usługi Databricks w celu uzyskania tokenu OAuth, zobacz Uwierzytelnianie użytkownika do maszyny (U2M) protokołu OAuth.
Zestaw SDK dla języka Python
Token OAuth można wygenerować przy użyciu zestawu SDK usługi Databricks dla języka Python. Powiązania zestawu SDK usługi Azure Databricks są dostępne w zestawie SDK usługi Databricks dla języka Python w wersji 0.56.0.
Jeśli używasz starszej wersji zestawu SDK, najpierw uruchom te polecenia.
%pip install --upgrade databricks-sdk
%restart_python
Zestaw SDK usługi Databricks dla języka Python generuje bezpieczny token OAuth, cred, dla wystąpienia bazy danych. W razie potrzeby wprowadź swoje poświadczenia.
from databricks.sdk import WorkspaceClient
import uuid
w = WorkspaceClient()
instance_name = "<YOUR INSTANCE>"
cred = w.database.generate_database_credential(request_id=str(uuid.uuid4()), instance_names=[instance_name])
Java SDK
Token OAuth można wygenerować przy użyciu zestawu SDK usługi Databricks dla języka Java. Powiązania API bazy danych są dostępne w usłudze Databricks SDK dla języka Java od wersji 0.53.0 wzwyż. Jeśli używasz starszej wersji zestawu SDK, może być konieczne odświeżenie zaimportowanego zestawu SDK. Więcej informacji można znaleźć tutaj.
%scala
import com.databricks.sdk.WorkspaceClient
import com.databricks.sdk.service.database.GetDatabaseInstanceRequest
import com.databricks.sdk.service.database.GenerateDatabaseCredentialRequest
import com.databricks.sdk.service.database.DatabaseInstance
import com.databricks.sdk.service.database.DatabaseCredential
import java.util.Collections
import java.util.UUID
val w = new WorkspaceClient()
val instanceName = "<YOUR INSTANCE>"
// Generate database credential
val cred = w.database().generateDatabaseCredential(
new GenerateDatabaseCredentialRequest()
.setRequestId(UUID.randomUUID().toString())
.setInstanceNames(Collections.singletonList(instanceName))
)
// Print out credential details
System.out.println("Credential: " + cred.getToken())
Uzyskiwanie tokenu OAuth w przepływie maszyny do maszyny
Aby włączyć bezpieczny, zautomatyzowany (maszyna-maszyna) dostęp do wystąpienia bazy danych, należy uzyskać token OAuth przy użyciu jednostki usługi Azure Databricks. Ten proces obejmuje skonfigurowanie jednostki usługi, wygenerowanie poświadczeń i wybicie tokenów OAuth na potrzeby uwierzytelniania.
Skonfiguruj jednostkę usługi z poświadczeniami o nieokreślonym terminie ważności. Aby uzyskać instrukcje, zobacz Autoryzowanie dostępu jednostki usługi do usługi Azure Databricks przy użyciu protokołu OAuth.
Wygeneruj nowe tokeny OAuth jako jednostka usługi.
CLI
Gdy stan wystąpienia bazy danych jest dostępny, użyj CLI Databricks w wersji 0.256.0 lub nowszej, aby uzyskać token OAuth:
Użyj następującego polecenia, aby pobrać token.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }'Spowoduje to wygenerowanie odpowiedzi w następującym formacie. Skopiuj element
tokenz odpowiedzi.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Zestaw SDK dla języka Python
Token OAuth można wygenerować przy użyciu zestawu SDK usługi Databricks dla języka Python. Powiązania zestawu SDK usługi Azure Databricks są dostępne w zestawie SDK usługi Databricks dla języka Python w wersji 0.56.0.
Jeśli używasz starszej wersji zestawu SDK, najpierw uruchom te polecenia.
%pip install --upgrade databricks-sdk %restart_pythonZestaw SDK usługi Databricks dla języka Python generuje bezpieczny token OAuth,
cred, dla wystąpienia bazy danych. Wprowadź nazwę instancji bazy danych tam, gdzie jest to potrzebne.from databricks.sdk import WorkspaceClient import uuid w = WorkspaceClient( host = "https://<YOUR WORKSPACE URL>/", client_id = "<YOUR SERVICE PRINCIPAL ID>", client_secret = "REDACTED" ) instance_name = "<YOUR INSTANCE>" cred = w.database.generate_database_credential(request_id=str(uuid.uuid4()), instance_names=[instance_name])Java SDK
Token OAuth można wygenerować przy użyciu zestawu SDK usługi Databricks dla języka Java. Powiązania API bazy danych są dostępne w usłudze Databricks SDK dla języka Java od wersji 0.53.0 wzwyż. Jeśli używasz starszej wersji zestawu SDK, może być konieczne zaktualizowanie do nowszego zestawu SDK. Więcej informacji można znaleźć tutaj.
%scala import com.databricks.sdk.WorkspaceClient import com.databricks.sdk.core.DatabricksConfig import com.databricks.sdk.service.database.GetDatabaseInstanceRequest import com.databricks.sdk.service.database.GenerateDatabaseCredentialRequest import com.databricks.sdk.service.database.DatabaseInstance import com.databricks.sdk.service.database.DatabaseCredential import java.util.Collections import java.util.UUID val config = new DatabricksConfig() // See https://github.com/databricks/databricks-sdk-java#authentication val w = new WorkspaceClient(config) val instanceName = "<YOUR INSTANCE>" // Generate database credential val cred = w.database().generateDatabaseCredential( new GenerateDatabaseCredentialRequest() .setRequestId(UUID.randomUUID().toString()) .setInstanceNames(Collections.singletonList(instanceName)) ) // Print out credential details System.out.println("Credential: " + cred.getToken())
Uwaga / Notatka
Odnów tokeny OAuth przed godzinnym wygaśnięciem.
- Sprawdź czas wygaśnięcia tokenu OAuth dla każdego użycia i odświeżaj w razie potrzeby.
- Alternatywnie skonfiguruj wątek w tle, aby okresowo odświeżyć bieżący token OAuth.
Rozwiązywanie problemów z identyfikacją tokenu
Jeśli tożsamość tokenu jest niezgodna z etykietą zabezpieczeń, może zostać wyświetlony komunikat o błędzie podobny do poniższego.
A valid oauth token was supplied but the token's identity "<USER>" did not match the security label configured for role "<SERVICE PRINCIPAL>". Please ensure that the token is generated for the correct databricks identity.
Uruchom następujące polecenie, aby sprawdzić, która tożsamość usługi Azure Databricks jest zwracana:
CLI
databricks current-user me
Zestaw SDK dla języka Python
w.current_user.me().user_name
Java SDK
w.currentUser.me().getUserName()
Jeśli oczekiwana tożsamość nie zostanie zwrócona, sprawdź, czy podczas inicjowania klienta przestrzeni roboczej użyto poprawnych poświadczeń.
Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft
W przypadku usługi Azure Databricks można również używać tożsamości i tokenów usługi Microsoft Entra ID do uwierzytelniania w interfejsach API usługi Azure Databricks. Użyj tych interfejsów API, aby uzyskać token do uwierzytelniania w usłudze Postgres.
Zobacz Zarządzanie użytkownikami, jednostkami usługi i grupami, aby dowiedzieć się, jak zarządzać tożsamościami zarządzanymi w Microsoft Entra ID w usłudze Azure Databricks. Użytkownicy, grupy oraz główne usługi z Microsoft Entra ID mogą być tworzone w Azure Databricks. Po dodaniu tych tożsamości do usługi Azure Databricks możesz dodać je do wystąpienia bazy danych zgodnie z opisem w Zarządzanie rolami Postgres.
Aby pobrać tokeny identyfikatora Entra firmy Microsoft, zapoznaj się z poniższymi informacjami:
- Pobierz tokeny identyfikatora Entra firmy Microsoft dla użytkowników.
- Uzyskiwanie tokenów Microsoft Entra ID dla podmiotów usługi
Uwierzytelnianie jako grupa usługi Azure Databricks
Grupy i członkostwa w grupach nie są synchronizowane z usługi Azure Databricks w usłudze Postgres i żadne z nich nie są uprawnieniami wykazu aparatu Unity. Jednak po dodaniu grupy usługi Azure Databricks do usługi Postgres każdy użytkownik usługi Azure Databricks w grupie może zalogować się jako grupa przy użyciu hasła użytkownika. Umożliwia to zarządzanie uprawnieniami na poziomie grupy w usłudze Postgres. Każdy bezpośredni lub pośredni członek (użytkownik lub jednostka usługi) tożsamości grupy usługi Azure Databricks może uwierzytelniać się w usłudze Postgres i logować się jako rola postgres grupy usługi Azure Databricks.
W przypadku uwierzytelniania jako tożsamości grupy przy użyciu tokenu użytkownika lub jednostki usługi członkostwo w grupie jest weryfikowane tylko w momencie uwierzytelniania. Każde otwarte połączenie z tokenem członka grupy pozostaje otwarte, jeśli członek zostanie usunięty z grupy po uwierzytelnieniu. Każde nowe żądanie połączenia od usuniętego członka grupy jest odrzucane podczas uwierzytelniania.
export PGPASSWORD='<OAuth token of a group member>'
export GROUPROLENAME=<pg-case-sensitive-group-role-name>
psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUPROLENAME
Tylko grupy przypisane do obszaru roboczego usługi Azure Databricks wystąpienia bazy danych są obsługiwane w przypadku logowania postgres opartego na grupach. Aby dowiedzieć się, jak przypisać grupę do obszaru roboczego, zobacz Przypisywanie grupy do obszaru roboczego.
Uwierzytelnianie za pomocą ról i haseł bazy danych Postgres
Jeśli masz klientów, którzy nie obsługują rotacji poświadczeń po godzinie, możesz utworzyć natywne role Postgres z hasłami:
Kliknij pozycję Obliczenia na pasku bocznym obszaru roboczego.
Kliknij kartę Wystąpienia bazy danych .
Wybierz wystąpienie bazy danych, które chcesz zaktualizować.
Kliknij przycisk Edytuj w prawym górnym rogu.
Włącz logowanie roli natywnej Postgres.
Kliknij przycisk Zapisz.
Zaloguj się do bazy danych Postgres lub użyj edytora SQL, aby utworzyć rolę z hasłem.
CREATE ROLE new_role LOGIN PASSWORD 'your strong password';Przyznaj dodatkowe uprawnienia Postgres nowej roli. Zobacz Udzielanie uprawnień do ról Postgres przy użyciu bazy danych PostgreSQL.
Dalsze kroki
Po uzyskaniu poświadczenia (tokenu OAuth lub hasła) możesz nawiązać połączenie z wystąpieniem bazy danych.