Verificatie-instellingen voor het Databricks JDBC-stuurprogramma
In dit artikel wordt beschreven hoe u azure Databricks-verificatie-instellingen configureert voor het Databricks JDBC-stuurprogramma.
Als u een Azure Databricks-verbinding wilt configureren voor het JDBC-stuurprogramma van Databricks, moet u uw rekenresource-instellingen, alle instellingen voor stuurprogrammafuncties en de volgende verificatie-instellingen combineren in een JDBC-verbindings-URL of programmatische verzameling van JDBC-verbindingseigenschappen.
JDBC-verbindings-URL's gebruiken de volgende indeling:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
- Zie Compute-instellingen voor het JDBC-stuurprogramma van Databricks om de waarden voor
<server-hostname>
en<http-path>
op te halen. - Vervang
<setting>=<value>
indien nodig voor elk van de verbindingseigenschappen, zoals vermeld in de volgende secties. - U kunt ook speciale of geavanceerde instellingen voor stuurprogrammafuncties toevoegen.
Programmatische verzamelingen van JDBC-verbindingseigenschappen kunnen worden gebruikt in Java-code, zoals in het volgende voorbeeld:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("com.databricks.client.jdbc.Driver");
String url = "jdbc:databricks://" + System.getenv("DATABRICKS_SERVER_HOSTNAME") + ":443";
Properties p = new java.util.Properties();
p.put("httpPath", System.getenv("DATABRICKS_HTTP_PATH"));
p.put("<setting1>", "<value1");
p.put("<setting2>", "<value2");
p.put("<settingN>", "<valueN");
try (Connection conn = DriverManager.getConnection(url, p)) {
Statement stmt = conn.createStatement();
try (ResultSet rs = stmt.executeQuery("<query>")) {
ResultSetMetaData md = rs.getMetaData();
String[] columns = new String[md.getColumnCount()];
for (int i = 0; i < columns.length; i++) {
columns[i] = md.getColumnName(i + 1);
}
while (rs.next()) {
System.out.print("Row " + rs.getRow() + "=[");
for (int i = 0; i < columns.length; i++) {
if (i != 0) {
System.out.print(", ");
}
System.out.print(columns[i] + "='" + rs.getObject(i + 1) + "'");
}
System.out.println(")]");
}
}
}
System.exit(0);
}
}
- Stel de
DATABRICKS_SERVER_HOSTNAME
enDATABRICKS_HTTP_PATH
omgevingswaarden in op respectievelijk de serverhostnaam- en HTTP-padwaarden van de Azure Databricks-rekenresource. Zie Compute-instellingen voor het JDBC-stuurprogramma van Databricks om deze waarden op te halen. Als u omgevingsvariabelen wilt instellen, raadpleegt u de documentatie van uw besturingssysteem. - Vervang
<setting>
en<value>
indien nodig voor elk van de verbindingseigenschappen, zoals vermeld in de volgende secties. - U kunt ook speciale of geavanceerde instellingen voor stuurprogrammamogelijkheden toevoegen, meestal als extra
<setting>
en<value>
paren. - Vervang voor dit voorbeeld door
<query>
een SQL-querytekenreeksSELECT
.
Of u nu een verbindings-URL of een verzameling verbindingseigenschappen gebruikt, is afhankelijk van de vereisten van uw doel-app, hulpprogramma, client, SDK of API. In dit artikel worden voorbeelden gegeven van JDBC-verbindings-URL's en programmatische verzamelingen van JDBC-verbindingseigenschappen voor elk ondersteund verificatietype van Azure Databricks.
Het Databricks JDBC-stuurprogramma ondersteunt de volgende Azure Databricks-verificatietypen:
- Persoonlijk toegangstoken van Azure Databricks
- Microsoft Entra ID -token (voorheen Azure Active Directory)
- OAuth 2.0-tokens
- OAuth-verificatie van gebruiker naar machine (U2M)
- OAuth-verificatie van machine-naar-machine (M2M)
Persoonlijk toegangstoken van Azure Databricks
Ga als volgt te werk om een persoonlijk toegangstoken voor Azure Databricks te maken:
- Klik in uw Azure Databricks-werkruimte op uw Azure Databricks-gebruikersnaam in de bovenste balk en selecteer vervolgens Instellingen in de vervolgkeuzelijst.
- Klik op Ontwikkelaars.
- Klik naast Access-tokens op Beheren.
- Klik op Nieuw token genereren.
- (Optioneel) Voer een opmerking in waarmee u dit token in de toekomst kunt identificeren en de standaardlevensduur van het token van 90 dagen kunt wijzigen. Als u een token zonder levensduur wilt maken (niet aanbevolen), laat u het vak Levensduur (dagen) leeg (leeg).
- Klik op Genereren.
- Kopieer het weergegeven token naar een veilige locatie en klik vervolgens op Gereed.
Notitie
Zorg ervoor dat u het gekopieerde token op een veilige locatie opslaat. Deel uw gekopieerde token niet met anderen. Als u het gekopieerde token kwijtraakt, kunt u dat token niet opnieuw genereren. In plaats daarvan moet u deze procedure herhalen om een nieuw token te maken. Als u het gekopieerde token kwijtraakt of als u denkt dat het token is aangetast, raadt Databricks u ten zeerste aan dat u dat token onmiddellijk uit uw werkruimte verwijdert door te klikken op het prullenbakpictogram (Intrekken) naast het token op de pagina Toegangstokens .
Als u geen tokens in uw werkruimte kunt maken of gebruiken, kan dit komen doordat uw werkruimtebeheerder tokens heeft uitgeschakeld of u geen toestemming hebt gegeven om tokens te maken of te gebruiken. Neem de werkruimtebeheerder of het volgende weer:
Als u wilt verifiëren met een persoonlijk toegangstoken van Azure Databricks, stelt u de volgende configuratie in.
Voor een JDBC-verbindings-URL met ingesloten algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
Voor Java-code met algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen die buiten de JDBC-verbindings-URL zijn ingesteld:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Zie het codevoorbeeld aan het begin van dit artikel voor een volledig Voorbeeld van Java-code dat u kunt aanpassen aan uw eigen behoeften.
- Vervang in de voorgaande URL of Java-code door
<personal-access-token>
het persoonlijke toegangstoken van Databricks voor uw werkruimtegebruiker. - Zie Compute-instellingen voor het JDBC-stuurprogramma van Databricks om de waarden voor
<server-hostname>
en<http-path>
op te halen.
Microsoft Entra ID -token (voorheen Azure Active Directory)
ODBC- en JDBC-stuurprogramma's 2.6.15 en hoger ondersteunen Microsoft Entra ID-tokens (voorheen Azure Active Directory) voor een Azure Databricks-gebruiker of een Microsoft Entra ID-service-principal.
Ga als volgt te werk om een Microsoft Entra ID-toegangstoken te maken:
- Voor een Azure Databricks-gebruiker kunt u de Azure CLI gebruiken. Zie Tokens voor Microsoft Entra-id (voorheen Azure Active Directory) ophalen voor gebruikers met behulp van de Azure CLI.
- Zie Een Microsoft Entra ID-toegangstoken ophalen met de Azure CLI voor een Service-principal van Microsoft Entra ID. Zie Service-principals beheren om een door Microsoft Entra ID beheerde service-principals te maken.
Microsoft Entra ID-toegangstokens hebben een standaardlevensduur van ongeveer 1 uur. Een toegangstoken kan programmatisch worden vernieuwd voor een bestaande sessie zonder de verbinding te verbreken door de code uit te voeren in een Microsoft Entra ID-toegangstoken vernieuwen. Zie de sectie Configuring Authentication > Using OAuth 2.0
in de Handleiding voor databricks JDBC-stuurprogramma's voor instructies over het vernieuwen van het token.
Als u wilt verifiëren met behulp van een Microsoft Entra ID-token, stelt u de volgende configuratie in.
Voor een JDBC-verbindings-URL met ingesloten algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
Voor Java-code met algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen die buiten de JDBC-verbindings-URL zijn ingesteld:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<microsoft-entra-id-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Zie het codevoorbeeld aan het begin van dit artikel voor een volledig Voorbeeld van Java-code dat u kunt aanpassen aan uw eigen behoeften.
- Vervang in de voorgaande URL of Java-code door
<microsoft-entra-id-token>
het Microsoft Entra ID-token. - Zie Compute-instellingen voor het JDBC-stuurprogramma van Databricks om de waarden voor
<server-hostname>
en<http-path>
op te halen.
Zie de Token Pass-through
sectie in de Handleiding voor Databricks JDBC-stuurprogramma's voor meer informatie.
OAuth 2.0-tokens
JDBC-stuurprogramma 2.6.36 en hoger ondersteunt een OAuth 2.0-token voor een Microsoft Entra ID-service-principal. Dit wordt ook wel OAuth 2.0-token passthrough-verificatie genoemd.
Als u een OAuth 2.0-token wilt maken voor passthrough-verificatie voor een Microsoft Entra ID-service-principal, raadpleegt u Handmatig toegangstokens genereren en gebruiken voor OAuth M2M-verificatie. Noteer de OAuth-waarde
access_token
van de service-principal.Zie Service-principals beheren om een door Microsoft Entra ID beheerde service-principals te maken.
Belangrijk
JDBC-stuurprogramma 2.6.36 en hoger ondersteunt het gebruik van Azure Databricks OAuth-geheimen om OAuth 2.0-tokens te maken. Microsoft Entra ID-geheimen worden niet ondersteund.
OAuth 2.0-tokens hebben een standaardlevensduur van 1 uur. Herhaal dit proces om een nieuw OAuth 2.0-token te genereren.
Als u wilt verifiëren met behulp van passthrough-verificatie voor OAuth 2.0-token, stelt u de volgende configuratie in.
Voor een JDBC-verbindings-URL met ingesloten algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
Voor Java-code met algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen die buiten de JDBC-verbindings-URL zijn ingesteld:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Zie het codevoorbeeld aan het begin van dit artikel voor een volledig Voorbeeld van Java-code dat u kunt aanpassen aan uw eigen behoeften.
- Vervang in de voorgaande URL of Java-code door
<oauth-token>
het Azure Databricks OAuth-token. (Microsoft Entra ID-tokens worden niet ondersteund voor passthrough-verificatie voor OAuth 2.0-token.) - Zie Compute-instellingen voor het JDBC-stuurprogramma van Databricks om de waarden voor
<server-hostname>
en<http-path>
op te halen.
Zie de Token Pass-through
sectie in de Handleiding voor Databricks JDBC-stuurprogramma's voor meer informatie.
OAuth-verificatie van gebruiker naar machine (U2M)
JDBC-stuurprogramma 2.6.36 en hoger ondersteunt OAuth-gebruikers-naar-machine-verificatie (U2M) voor een Azure Databricks-gebruiker. Dit wordt ook wel OAuth 2.0-verificatie op basis van een browser genoemd.
Verificatie op basis van OAuth U2M of OAuth 2.0 is niet vereist. OAuth 2.0-tokens hebben een standaardlevensduur van 1 uur. Verificatie op basis van OAuth U2M of OAuth 2.0 in de browser moet verlopen OAuth 2.0-tokens automatisch vernieuwen.
Notitie
OAuth U2M- of OAuth 2.0-browserverificatie werkt alleen met toepassingen die lokaal worden uitgevoerd. Het werkt niet met server- of cloudtoepassingen.
Stel de volgende configuratie in om te verifiëren met behulp van OAuth-gebruikers-naar-machine (U2M) of OAuth 2.0-browserverificatie.
Voor een JDBC-verbindings-URL met ingesloten algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
Voor Java-code met algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen die buiten de JDBC-verbindings-URL zijn ingesteld:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2")
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Zie het codevoorbeeld aan het begin van dit artikel voor een volledig Voorbeeld van Java-code dat u kunt aanpassen aan uw eigen behoeften.
- Vervang in de voorgaande URL of Java-code door
<passphrase>
een wachtwoordzin van uw keuze. Het stuurprogramma gebruikt deze sleutel voor het vernieuwen van tokenversleuteling. - Zie Compute-instellingen voor het JDBC-stuurprogramma van Databricks om de waarden voor
<server-hostname>
en<http-path>
op te halen.
Zie de Using Browser Based Authentication
sectie in de Handleiding voor Databricks JDBC-stuurprogramma's voor meer informatie.
OAuth-verificatie van machine-naar-machine (M2M)
JDBC-stuurprogramma 2.6.36 en hoger ondersteunt OAuth-M2M-verificatie (machine-to-machine) voor een Microsoft Entra ID-service-principal. Dit wordt ook wel OAuth 2.0-clientreferentieverificatie genoemd.
Ga als volgt te werk om verificatie van OAuth M2M- of OAuth 2.0-clientreferenties te configureren:
Maak een door Microsoft Entra ID beheerde service-principal en wijs deze vervolgens toe aan Azure Databricks-accounts en -werkruimten. Zie Service-principals beheren om dit te doen.
Belangrijk
JDBC-stuurprogramma 2.6.36 en hoger ondersteunt Verificatie van Azure Databricks OAuth-geheimen voor OAuth M2M of OAuth 2.0-clientreferenties. Microsoft Entra ID-geheimen worden niet ondersteund.
Maak een Azure Databricks OAuth-geheim voor de service-principal. Zie Hiervoor handmatig toegangstokens genereren en gebruiken voor OAuth M2M-verificatie.
Geef de service-principal toegang tot uw cluster of magazijn. Zie Compute-machtigingen of een SQL-warehouse beheren.
Als u verificatie wilt uitvoeren met behulp van verificatie van OAuth-machine-naar-machine (M2M) of OAuth 2.0-clientreferenties, stelt u de volgende configuratie in.
Voor een JDBC-verbindings-URL met ingesloten algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
Voor Java-code met algemene configuratie-eigenschappen en gevoelige referentie-eigenschappen die buiten de JDBC-verbindings-URL zijn ingesteld:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Zie het codevoorbeeld aan het begin van dit artikel voor een volledig Voorbeeld van Java-code dat u kunt aanpassen aan uw eigen behoeften.
- Vervang in de voorgaande URL of Java-code de volgende tijdelijke aanduidingen:
- Vervang door
<service-principal-application-id>
de waarde van de toepassings-id (client) van de service-principal. - Vervang
<service-principal-oauth-secret>
door het Azure Databricks OAuth-geheim van de service-principal. (Microsoft Entra ID-geheimen worden niet ondersteund voor verificatie van OAuth M2M- of OAuth 2.0-clientreferenties.) - Zie Compute-instellingen voor het JDBC-stuurprogramma van Databricks om de waarden voor
<server-hostname>
en<http-path>
op te halen.
- Vervang door
Zie de Using M2M Based Authentication
sectie in de Handleiding voor Databricks JDBC-stuurprogramma's voor meer informatie.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor