Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze functie bevindt zich in Openbare Preview in de volgende regio's: westus, westus2, eastus, eastus2, centralus, southcentralus, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, southeastasia, uksouth.
Op deze pagina wordt beschreven hoe u verifieert bij een Lakebase-database-exemplaar. Er zijn twee manieren om te verifiëren:
- Een OAuth-token verkrijgen en verifiëren met behulp van Azure Databricks-identiteiten.
- Gebruik systeemeigen Postgres-rollen met wachtwoorden.
Verifiëren met Azure Databricks-identiteiten
Wanneer u zich verifieert als een Azure Databricks-identiteit, moet u een OAuth-token genereren en dit als een wachtwoord gebruiken wanneer u verbinding maakt met Postgres.
Overwegingen voordat u begint
OAuth-tokens verlopen na één uur, maar de vervaldatum wordt alleen afgedwongen bij aanmelding. Open verbindingen blijven actief, zelfs als het token verloopt. Elke PostgreSQL-opdracht waarvoor verificatie is vereist, mislukt echter als het token is verlopen.
OAuth-tokens die worden gebruikt voor Postgres-verificatie zijn binnen het bereik van de werkruimte en moeten behoren tot dezelfde werkruimte die eigenaar is van het database-exemplaar. Tokenverificatie tussen werkruimten wordt niet ondersteund. Zie Verificatie voor de Databricks CLI voor meer informatie over verificatie.
Verificatie op basis van tokens vereist een wachtwoord zonder opmaak, dus alleen SSL-verbindingen zijn toegestaan. Zorg ervoor dat de clientbibliotheek die u gebruikt voor toegang tot Postgres met verificatie op basis van tokens is geconfigureerd om een SSL-verbinding tot stand te brengen.
Een OAuth-token verkrijgen in een gebruikers-naar-machine-stroom
Als u een database-eigenaar, beheerder of azure Databricks-identiteit bent met een bijbehorende Postgres-rol voor het database-exemplaar, kunt u een OAuth-token verkrijgen via de gebruikersinterface, de Databricks CLI of een van de Databricks-SDK's. U kunt het bereik van het token beperken met behulp van de Databricks CLI.
Zie Gebruikerstoegang tot Azure Databricks autoriseren met OAuth voor de autorisatie-instructies op werkruimteniveau voor het verkrijgen van OAuth-tokens voor andere Azure Databricks-identiteiten.
UI (Gebruikersinterface)
Wanneer de status van uw database-exemplaar beschikbaar is, gebruikt u de Azure Databricks-gebruikersinterface om een OAuth-token op te halen:
- Klik op Compute in de zijbalk van de werkruimte en klik op het tabblad Lakebase Voorzien.
- Zoek en klik op de naam van het database-exemplaar waarvoor u een OAuth-token wilt verkrijgen.
- Klik op het tabblad Verbindingsgegevens.
- Klik op OAuth-token ophalen. Een vlag geeft aan wanneer het token is gemaakt.
- Klik op OAuthToken kopiëren om het token naar het klembord te kopiëren.
CLI (Command Line Interface)
Wanneer de status van uw database-exemplaar beschikbaar is, gebruikt u de Databricks CLI v0.256.0 en hoger om een OAuth-token op te halen:
- Gebruik de volgende opdracht om een token op te halen.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }' - Hiermee wordt een antwoord gegenereerd in de volgende indeling. Kopieer het
tokenuit het antwoord.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Zie OAuth-gebruikers-naar-machineverificatie (U2M) voor meer informatie over het gebruik van de Databricks CLI om een OAuth-token te verkrijgen.
Python SDK
U kunt een OAuth-token genereren met behulp van de Databricks SDK voor Python. Azure Databricks SDK-bindingen zijn beschikbaar in Databricks SDK voor Python-versie v0.56.0.
Als u een oudere versie van de SDK gebruikt, voert u deze opdrachten eerst uit.
%pip install --upgrade databricks-sdk
%restart_python
De Databricks SDK voor Python genereert een beveiligd OAuth-token, credvoor uw database-exemplaar. Voer waar nodig uw referenties in.
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
U kunt een OAuth-token genereren met behulp van de Databricks SDK voor Java. Database SDK-bindingen zijn beschikbaar in Databricks SDK voor Java-versie v0.53.0 of hoger. Als u werkt met een oudere versie van de SDK, moet u mogelijk de geïmporteerde SDK vernieuwen. Zie hier voor meer informatie.
%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())
Een OAuth-token verkrijgen in een machine-naar-machine-proces
Als u beveiligde, geautomatiseerde (machine-naar-machine) toegang tot het database-exemplaar wilt inschakelen, moet u een OAuth-token verkrijgen met behulp van een Azure Databricks-service-principal. Dit proces omvat het configureren van de service-principal, het genereren van referenties en het instellen van OAuth-tokens voor verificatie.
Configureer een serviceprincipal met referenties voor onbepaalde tijd. Zie Toegang tot de service-principal autoriseren voor Azure Databricks met OAuth voor instructies.
Aanmaken nieuwe OAuth-tokens als de service-principeel.
CLI (Command Line Interface)
Wanneer de status van uw database-exemplaar beschikbaar is, gebruikt u de Databricks CLI v0.256.0 en hoger om een OAuth-token op te halen:
Gebruik de volgende opdracht om een token op te halen.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }'Hiermee wordt een antwoord gegenereerd in de volgende indeling. Kopieer het
tokenuit het antwoord.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Python SDK
U kunt een OAuth-token genereren met behulp van de Databricks SDK voor Python. Azure Databricks SDK-bindingen zijn beschikbaar in Databricks SDK voor Python-versie v0.56.0.
Als u een oudere versie van de SDK gebruikt, voert u deze opdrachten eerst uit.
%pip install --upgrade databricks-sdk %restart_pythonDe Databricks SDK voor Python genereert een beveiligd OAuth-token,
credvoor uw database-exemplaar. Voer waar nodig de naam van uw database-exemplaar in.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
U kunt een OAuth-token genereren met behulp van de Databricks SDK voor Java. Database SDK-bindingen zijn beschikbaar in Databricks SDK voor Java-versie v0.53.0 of hoger. Als u werkt met een oudere versie van de SDK, moet u mogelijk bijwerken naar een nieuwere SDK. Zie hier voor meer informatie.
%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())
Opmerking
OAuth-tokens draaien vóór de vervaldatum per uur:
- Controleer de verlooptijd van het OAuth-token voor elk gebruik en vernieuw indien nodig.
- U kunt ook een achtergrondthread instellen om het huidige OAuth-token periodiek te vernieuwen.
Problemen met tokenidentiteit oplossen
Als de identiteit van uw token niet overeenkomt met het beveiligingslabel, wordt er mogelijk een foutbericht weergegeven zoals hieronder.
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.
Voer de volgende opdracht uit om te controleren welke Azure Databricks-identiteit wordt geretourneerd:
CLI (Command Line Interface)
databricks current-user me
Python SDK
w.current_user.me().user_name
Java SDK
w.currentUser.me().getUserName()
Als de verwachte identiteit niet wordt geretourneerd, controleert u of de juiste referenties zijn gebruikt bij het initialiseren van de werkruimteclient.
Verifiëren met Microsoft Entra-id
Voor Azure Databricks kunnen Microsoft Entra ID-identiteiten en -tokens ook worden gebruikt voor verificatie bij Azure Databricks-API's. Gebruik deze API's om een token te verkrijgen om te verifiëren bij Postgres.
Zie Gebruikers, service-principals en groepen beheren voor het beheren van door Microsoft Entra ID beheerde identiteiten in Azure Databricks. Gebruikers, groepen en service-principals van Microsoft Entra ID kunnen worden gemaakt in Azure Databricks. Zodra deze identiteiten zijn toegevoegd aan Azure Databricks, kunt u deze toevoegen aan het database-exemplaar, zoals beschreven in Postgres-rollen beheren.
Als u Microsoft Entra ID-tokens wilt ophalen, raadpleegt u het volgende:
- Microsoft Entra ID-tokens ophalen voor gebruikers.
- Microsoft Entra ID-tokens ophalen voor service-principals
Authenticeren als Azure Databricks-groep
Groepen en groepslidmaatschappen worden niet gesynchroniseerd vanuit Azure Databricks in Postgres en zijn ook geen Unity Catalog-machtigingen. Nadat een Azure Databricks-groep is toegevoegd aan Postgres, kan elke Azure Databricks-gebruiker in de groep zich echter aanmelden als de groep met behulp van het wachtwoord van de gebruiker. Hiermee kunt u machtigingen beheren op groepsniveau in Postgres. Elk direct of indirect lid (gebruiker of service-principal) van de Azure Databricks-groepsidentiteit kan worden geverifieerd bij Postgres en zich aanmelden als de Postgres-rol van de Azure Databricks-groep.
Wanneer u zich authenticeert als een groepsidentiteit met een token van een gebruiker of service-principal-token, wordt het groepslidmaatschap alleen gevalideerd op het moment van authenticatie. Elke geopende verbinding met een token voor een groepslid blijft geopend als het lid na verificatie uit de groep wordt verwijderd. Elke nieuwe verbindingsaanvraag van een verwijderd groepslid wordt geweigerd tijdens de verificatie.
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
Alleen groepen die zijn toegewezen aan de Azure Databricks-werkruimte van het database-exemplaar, worden ondersteund voor postgres-aanmelding op basis van een groep. Zie Een groep toewijzen aan een werkruimte voor meer informatie over het toewijzen van een groep aan een werkruimte.
Verifiëren met Postgres-rollen en -wachtwoorden
Als u clients hebt die na één uur geen ondersteuning bieden voor het rouleren van referenties, kunt u systeemeigen Postgres-rollen maken met wachtwoorden:
Klik op Compute in de zijbalk van de werkruimte.
Klik op het tabblad Database-exemplaren .
Selecteer het database-exemplaar dat u wilt bijwerken.
Klik in de rechterbovenhoek op Bewerken .
Inschakelen Enable Postgres Native Role Login.
Klik op Opslaan.
Meld u aan bij Postgres of gebruik sql Editor om een rol met een wachtwoord te maken.
CREATE ROLE new_role LOGIN PASSWORD 'your strong password';Verken aanvullende Postgres-machtigingen voor de nieuwe rol. Zie Bevoegdheden verlenen aan Postgres-rollen met Behulp van PostgreSQL.
Volgende stappen
Nadat u een referentie (OAuth-token of wachtwoord) hebt verkregen, kunt u verbinding maken met uw database-exemplaar: