Delen via


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>]

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 en DATABRICKS_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-querytekenreeks SELECT .

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

Ga als volgt te werk om een persoonlijk toegangstoken voor Azure Databricks te maken:

  1. Klik in uw Azure Databricks-werkruimte op uw Azure Databricks-gebruikersnaam in de bovenste balk en selecteer vervolgens Instellingen in de vervolgkeuzelijst.
  2. Klik op Ontwikkelaars.
  3. Klik naast Access-tokens op Beheren.
  4. Klik op Nieuw token genereren.
  5. (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).
  6. Klik op Genereren.
  7. 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:

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.

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:

  1. 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.

  2. Maak een Azure Databricks OAuth-geheim voor de service-principal. Zie Hiervoor handmatig toegangstokens genereren en gebruiken voor OAuth M2M-verificatie.

  3. 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.

Zie de Using M2M Based Authentication sectie in de Handleiding voor Databricks JDBC-stuurprogramma's voor meer informatie.