Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Auf dieser Seite wird beschrieben, wie Sie sich bei einer Lakebase-Datenbankinstanz authentifizieren. Es gibt zwei Möglichkeiten zur Authentifizierung:
- Rufen Sie ein OAuth-Token ab und authentifizieren Sie sich mithilfe von Azure Databricks-Identitäten.
- Verwenden Sie native Postgres-Rollen mit Kennwörtern.
Authentifizieren mit Azure Databricks-Identitäten
Wenn Sie sich als Azure Databricks-Identität authentifizieren, müssen Sie ein OAuth-Token generieren und als Kennwort verwenden, wenn Sie eine Verbindung mit Postgres herstellen.
Überlegungen vor Beginn
OAuth-Token laufen nach einer Stunde ab, aber das Ablaufdatum wird nur bei der Authentifizierung durchgesetzt. Offene Verbindungen bleiben auch dann aktiv, wenn das Token abläuft. Jeder PostgreSQL-Befehl, der eine Authentifizierung erfordert, schlägt jedoch fehl, wenn das Token abgelaufen ist.
OAuth-Token, die für die Postgres-Authentifizierung verwendet werden, sind an den Arbeitsbereich gebunden und sollten zu demselben Arbeitsbereich gehören, der die Datenbankinstanz besitzt. Die arbeitsbereichübergreifende Tokenauthentifizierung wird nicht unterstützt. Weitere Informationen zur Authentifizierung finden Sie unter "Authentication for the Databricks CLI".
Die tokenbasierte Authentifizierung erfordert ein Nur-Text-Kennwort, sodass nur SSL-Verbindungen zulässig sind. Stellen Sie sicher, dass die Clientbibliothek, die Sie für den Zugriff auf Postgres mit tokenbasierter Authentifizierung verwenden, für die Einrichtung einer SSL-Verbindung konfiguriert ist.
Abrufen eines OAuth-Tokens in einem Benutzer-zu-Computer-Fluss
Wenn Sie Eigentümer einer Datenbank, Administrator sind oder Ihre Azure Databricks-Identität über eine entsprechende Postgres-Rolle für die Datenbankinstanz verfügt, können Sie ein OAuth-Token über die Benutzeroberfläche, die Databricks CLI oder eines der Databricks-SDKs abrufen. Sie können den Umfang des Tokens mithilfe der Databricks CLI entsprechend einschränken.
Weitere Azure Databricks-Identitätsbenutzer finden Sie unter Autorisieren des Benutzerzugriffs auf Azure Databricks mit OAuth für die Autorisierungsanweisungen auf Arbeitsbereichsebene, um OAuth-Token abzurufen.
Benutzeroberfläche
Wenn Ihr Datenbankinstanzstatusverfügbar ist, verwenden Sie die Azure Databricks-Benutzeroberfläche, um ein OAuth-Token abzurufen:
- Klicken Sie in der Arbeitsbereichs-Randleiste auf "Berechnen ", und klicken Sie auf die Registerkarte " Lakebase Provisioned ".
- Suchen Und klicken Sie auf den Namen der Datenbankinstanz, für die Sie ein OAuth-Token abrufen möchten.
- Klicken Sie auf die Registerkarte Verbindungsdetails.
- Klicken Sie auf "OAuth-Token abrufen". Ein Kennzeichen gibt an, wann das Token erstellt wurde.
- Klicken Sie auf "OAuthToken kopieren", um das Token in die Zwischenablage zu kopieren.
Befehlszeilenschnittstelle (CLI)
Wenn der Datenbankinstanzstatusverfügbar ist, verwenden Sie die Databricks CLI v0.256.0 und höher, um ein OAuth-Token abzurufen:
- Verwenden Sie den folgenden Befehl, um ein Token abzurufen.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }' - Dadurch wird eine Antwort im folgenden Format generiert. Kopieren Sie
tokenaus der Antwort.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Weitere Informationen zur Verwendung der Databricks CLI zum Abrufen eines OAuth-Tokens finden Sie unter OAuth-Authentifizierung (User-to-Machine, U2M).
Python SDK
Sie können ein OAuth-Token mithilfe des Databricks SDK für Python generieren. Azure Databricks SDK-Bindungen sind im Databricks SDK für Python Version v0.56.0 verfügbar.
Wenn Sie eine ältere Version des SDK verwenden, führen Sie zuerst diese Befehle aus.
%pip install --upgrade databricks-sdk
%restart_python
Das Databricks SDK für Python generiert für Ihre Datenbankinstanz ein sicheres OAuth-Token cred. Geben Sie bei Bedarf Ihre Anmeldeinformationen ein.
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
Sie können ein OAuth-Token mithilfe des Databricks SDK für Java generieren. Datenbank-SDK-Bindungen sind im Databricks SDK für Java Version v0.53.0 oder höher verfügbar. Wenn Sie eine ältere Version des SDK verwenden, müssen Sie möglicherweise das importierte SDK aktualisieren oder neu laden. Weitere Informationen finden Sie hier.
%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())
Abrufen eines OAuth-Tokens in einem Flow zwischen Computern
Um den sicheren, automatisierten Zugriff (Computer-zu-Computer) auf die Datenbankinstanz zu ermöglichen, müssen Sie ein OAuth-Token mit einem Azure Databricks-Dienstprinzipal abrufen. Dieser Prozess umfasst das Konfigurieren des Dienstprinzipals, das Generieren von Anmeldeinformationen und das Abfassen von OAuth-Token für die Authentifizierung.
Konfigurieren Sie einen Dienstprinzipal mit unbefristet gültigen Anmeldeinformationen. Anweisungen finden Sie unter Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth.
Generieren Sie neue OAuth-Token als Dienstprinzipal.
Befehlszeilenschnittstelle (CLI)
Wenn der Datenbankinstanzstatusverfügbar ist, verwenden Sie die Databricks CLI v0.256.0 und höher, um ein OAuth-Token abzurufen:
Verwenden Sie den folgenden Befehl, um ein Token abzurufen.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }'Dadurch wird eine Antwort im folgenden Format generiert. Kopieren Sie
tokenaus der Antwort.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Python SDK
Sie können ein OAuth-Token mithilfe des Databricks SDK für Python generieren. Azure Databricks SDK-Bindungen sind im Databricks SDK für Python Version v0.56.0 verfügbar.
Wenn Sie eine ältere Version des SDK verwenden, führen Sie zuerst diese Befehle aus.
%pip install --upgrade databricks-sdk %restart_pythonDas Databricks SDK für Python generiert für Ihre Datenbankinstanz ein sicheres OAuth-Token
cred. Geben Sie bei Bedarf den Namen Ihrer Datenbankinstanz ein.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
Sie können ein OAuth-Token mithilfe des Databricks SDK für Java generieren. Datenbank-SDK-Bindungen sind im Databricks SDK für Java Version v0.53.0 oder höher verfügbar. Wenn Sie mit einer älteren Version des SDK arbeiten, müssen Sie möglicherweise auf ein neueres SDK aktualisieren. Weitere Informationen finden Sie hier.
%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())
Hinweis
Rotieren Sie OAuth-Token vor dem stündlichem Ablauf:
- Überprüfen Sie bei Bedarf die Ablaufzeit des OAuth-Tokens für jede Verwendung und Aktualisierung.
- Alternativ können Sie einen Hintergrundthread einrichten, um das aktuelle OAuth-Token regelmäßig zu aktualisieren.
Problembehandlung bei der Token-Identität
Wenn die Identität Ihres Tokens nicht mit der Sicherheitsbezeichnung übereinstimmt, erhalten Sie möglicherweise eine Fehlermeldung wie die folgende.
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.
Führen Sie den folgenden Befehl aus, um zu überprüfen, welche Azure Databricks-Identität zurückgegeben wird:
Befehlszeilenschnittstelle (CLI)
databricks current-user me
Python SDK
w.current_user.me().user_name
Java-SDK
w.currentUser.me().getUserName()
Wenn die erwartete Identität nicht zurückgegeben wird, überprüfen Sie, ob die richtigen Anmeldeinformationen beim Initialisieren des Arbeitsbereichsclients verwendet wurden.
Melden Sie sich an mit der Microsoft Entra-ID
Für Azure Databricks können Microsoft Entra-ID-Identitäten und -Token auch verwendet werden, um sich bei Azure Databricks-APIs zu authentifizieren. Verwenden Sie diese APIs, um ein Token zur Authentifizierung bei Postgres abzurufen.
Informationen zum Verwalten von verwalteten Microsoft Entra ID-Identitäten in Azure Databricks finden Sie unter Verwalten von Benutzern, Dienstprinzipalen und Gruppen . Benutzer, Gruppen und Dienstprinzipale aus der Microsoft Entra-ID können in Azure Databricks erstellt werden. Sobald Sie diese Identitäten zu Azure Databricks hinzufügen, können Sie sie der Datenbankinstanz hinzufügen, wie in Rollen in Postgres verwalten beschrieben.
Informationen darüber, wie Sie Microsoft Entra-ID-Token abrufen können, finden Sie in den folgenden Quellen:
- Abrufen von Microsoft Entra ID-Token für Benutzende
- Abrufen von Microsoft Entra ID-Token für Dienstprinzipale
Authentifizieren als Azure Databricks-Gruppe
Gruppen und Gruppenmitgliedschaften werden nicht aus Azure Databricks in Postgres synchronisiert, und auch nicht Unity-Katalogberechtigungen. Nachdem jedoch eine Azure-Databricks-Gruppe in Postgres hinzugefügt wurde, kann sich jeder Azure-Databricks-Benutzer in der Gruppe mit seinem eigenen Kennwort als Mitglied der Gruppe anmelden. Auf diese Weise können Sie Berechtigungen auf Gruppenebene in Postgres verwalten. Jedes direkte oder indirekte Mitglied (Benutzer oder Dienstprinzipal) der Azure-Databricks-Gruppenidentität kann sich bei Postgres authentifizieren und sich als Rolle der Azure-Databricks-Gruppe Postgres anmelden.
Bei der Authentifizierung als Gruppenidentität mithilfe eines Benutzer- oder Dienstprinzipaltokens wird die Gruppenmitgliedschaft nur zum Zeitpunkt der Authentifizierung überprüft. Jede geöffnete Verbindung mit einem Gruppenmitgliedstoken bleibt geöffnet, wenn das Mitglied nach der Authentifizierung aus der Gruppe entfernt wird. Jede neue Verbindungsanforderung von einem entfernten Gruppenmitglied wird während der Authentifizierung abgelehnt.
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
Für die gruppenbasierte Postgres-Anmeldung werden nur Gruppen unterstützt, die dem Azure Databricks-Arbeitsbereich der Datenbankinstanz zugewiesen sind. Informationen zum Zuweisen einer Gruppe zu einem Arbeitsbereich finden Sie unter Zuweisen einer Gruppe zu einem Arbeitsbereich.
Authentifizieren mit Postgres-Rollen und Kennwörtern
Wenn Sie Clients haben, die die Rotation von Zugangsdaten nach einer Stunde nicht unterstützen, können Sie native Postgres-Rollen mit Kennwörtern erstellen.
Klicken Sie auf " Berechnen" in der Arbeitsbereich-Randleiste.
Klicken Sie auf die Registerkarte Datenbankinstanzen.
Wählen Sie die Datenbankinstanz aus, die Sie aktualisieren möchten.
Klicken Sie oben rechts auf "Bearbeiten ".
Aktivieren Sie Postgres Native Role Login.
Klicken Sie auf "Speichern".
Melden Sie sich bei Postgres an, oder verwenden Sie den SQL-Editor, um eine Rolle mit einem Kennwort zu erstellen.
CREATE ROLE new_role LOGIN PASSWORD 'your strong password';Gewähren Sie der neuen Rolle zusätzliche Postgres-Berechtigungen. Weitere Informationen finden Sie unter Berechtigungen für Postgres-Benutzerrollen mithilfe von PostgreSQL gewähren.
Nächste Schritte
Nach dem Abrufen einer Anmeldeinformation (OAuth-Token oder Kennwort) können Sie eine Verbindung mit Ihrer Datenbankinstanz herstellen: