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
- 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. Raadpleeg uw werkruimtebeheerder of de volgende onderwerpen:
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
ODBC- en JDBC-stuurprogramma's 2.6.15 en hoger ondersteunen Microsoft Entra ID-tokens 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 Microsoft Entra ID-tokens 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.
Notitie
JDBC 2.6.40.1071 lost het probleem op in oudere versies die verbinding maken met M2M voor werkruimten met private link, is niet ondersteund.
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.