Autentiseringsinställningar för Databricks JDBC-drivrutinen
För att konfigurera en Azure Databricks-anslutning för Databricks JDBC-drivrutinen måste du kombinera dina beräkningsresursinställningar, eventuella inställningar för drivrutinsfunktioner och följande autentiseringsinställningar till en JDBC-anslutnings-URL eller en programmatisk samling med JDBC-anslutningsegenskaper.
JDBC-anslutnings-URL:er använder följande format:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
- Information om hur du hämtar värdena för
<server-hostname>
och<http-path>
finns i Beräkningsinställningar för Databricks JDBC-drivrutinen. - Ersätt
<setting>=<value>
efter behov för var och en av anslutningsegenskaperna enligt beskrivningen i följande avsnitt. - Du kan också lägga till särskilda eller avancerade inställningar för drivrutinsfunktioner.
Programmatiska samlingar av JDBC-anslutningsegenskaper kan användas i Java-kod, till exempel följande exempel:
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);
}
}
DATABRICKS_SERVER_HOSTNAME
Ange miljövärdena ochDATABRICKS_HTTP_PATH
till Azure Databricks-målberäkningsresursens servervärdnamn respektive HTTP-sökvägsvärden. Information om hur du hämtar dessa värden finns i Beräkningsinställningar för Databricks JDBC-drivrutinen. Information om hur du anger miljövariabler finns i dokumentationen till operativsystemet.- Ersätt
<setting>
och efter behov för var och<value>
en av anslutningsegenskaperna enligt beskrivningen i följande avsnitt. - Du kan också lägga till särskilda eller avancerade inställningar för drivrutinsfunktioner, vanligtvis som ytterligare
<setting>
och<value>
par. - I det här exemplet ersätter du
<query>
med en SQL-frågesträngSELECT
.
Om du använder en anslutnings-URL eller en samling anslutningsegenskaper beror på kraven för målappen, verktyget, klienten, SDK:n eller API:et. Exempel på JDBC-anslutnings-URL:er och programmatiska samlingar av JDBC-anslutningsegenskaper finns i den här artikeln för varje Azure Databricks-autentiseringstyp som stöds.
Databricks JDBC-drivrutinen stöder följande Azure Databricks-autentiseringstyper:
- Personlig åtkomsttoken för Azure Databricks
- Microsoft Entra ID-token (tidigare Azure Active Directory)
- OAuth 2.0-token
- OAuth-autentisering från användare till dator (U2M)
- OAuth-autentisering från dator till dator (M2M)
Personlig åtkomsttoken för Azure Databricks
Gör följande för att skapa en personlig åtkomsttoken för Azure Databricks:
- I din Azure Databricks-arbetsyta klickar du på ditt Användarnamn för Azure Databricks i det övre fältet och väljer sedan Inställningar i listrutan.
- Klicka på Utvecklare.
- Bredvid Åtkomsttoken klickar du på Hantera.
- Klicka på Generera ny token.
- (Valfritt) Ange en kommentar som hjälper dig att identifiera den här token i framtiden och ändra tokens standardlivslängd på 90 dagar. Om du vill skapa en token utan livslängd (rekommenderas inte) lämnar du rutan Livslängd (dagar) tom (tom).
- Klicka på Generera.
- Kopiera den visade token till en säker plats och klicka sedan på Klar.
Kommentar
Se till att spara den kopierade token på en säker plats. Dela inte din kopierade token med andra. Om du förlorar den kopierade token kan du inte återskapa exakt samma token. I stället måste du upprepa den här proceduren för att skapa en ny token. Om du förlorar den kopierade token eller om du tror att token har komprometterats rekommenderar Databricks starkt att du omedelbart tar bort den token från arbetsytan genom att klicka på papperskorgsikonen (Återkalla) bredvid token på sidan Åtkomsttoken .
Om du inte kan skapa eller använda token på din arbetsyta kan det bero på att arbetsyteadministratören har inaktiverat token eller inte har gett dig behörighet att skapa eller använda token. Se din arbetsyteadministratör eller följande:
Om du vill autentisera med en personlig åtkomsttoken för Azure Databricks anger du följande konfiguration.
För en JDBC-anslutnings-URL med inbäddade allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
För Java-kod med allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter som anges utanför JDBC-anslutnings-URL:en:
// ...
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);
// ...
- Ett fullständigt Java-kodexempel som du kan anpassa föregående kodfragment till dina egna behov finns i kodexemplet i början av den här artikeln.
- I föregående URL eller Java-kod ersätter du
<personal-access-token>
med Databricks personliga åtkomsttoken för din arbetsyteanvändare. - Information om hur du hämtar värdena för
<server-hostname>
och<http-path>
finns i Beräkningsinställningar för Databricks JDBC-drivrutinen.
Microsoft Entra ID-token (tidigare Azure Active Directory)
ODBC- och JDBC-drivrutinerna 2.6.15 och senare stöder Microsoft Entra-ID-token (tidigare Azure Active Directory) för en Azure Databricks-användare eller ett Microsoft Entra ID-tjänsthuvudnamn.
Gör följande för att skapa en Microsoft Entra ID-åtkomsttoken:
- För en Azure Databricks-användare kan du använda Azure CLI. Se Hämta Microsoft Entra-ID-token (tidigare Azure Active Directory) för användare med hjälp av Azure CLI.
- Ett microsoft entra-ID-tjänsthuvudnamn finns i Hämta en Microsoft Entra ID-åtkomsttoken med Azure CLI. Information om hur du skapar ett microsoft entra-ID för hanterad tjänsthuvudnamn finns i Hantera tjänstens huvudnamn.
Microsoft Entra ID-åtkomsttoken har en standardlivslängd på cirka 1 timme. En åtkomsttoken kan uppdateras programmatiskt för en befintlig session utan att bryta anslutningen genom att köra koden i Uppdatera en Microsoft Entra-ID-åtkomsttoken. Anvisningar om hur du uppdaterar token finns i avsnittet Configuring Authentication > Using OAuth 2.0
i Drivrutinsguiden för Databricks JDBC.
Om du vill autentisera med en Microsoft Entra-ID-token anger du följande konfiguration.
För en JDBC-anslutnings-URL med inbäddade allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
För Java-kod med allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter som anges utanför JDBC-anslutnings-URL:en:
// ...
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);
// ...
- Ett fullständigt Java-kodexempel som du kan anpassa föregående kodfragment till dina egna behov finns i kodexemplet i början av den här artikeln.
- I föregående URL eller Java-kod ersätter du
<microsoft-entra-id-token>
med Microsoft Entra-ID-token. - Information om hur du hämtar värdena för
<server-hostname>
och<http-path>
finns i Beräkningsinställningar för Databricks JDBC-drivrutinen.
Mer information Token Pass-through
finns i avsnittet i drivrutinsguiden för Databricks JDBC.
OAuth 2.0-token
JDBC-drivrutinen 2.6.36 och senare stöder en OAuth 2.0-token för ett Microsoft Entra ID-tjänsthuvudnamn. Detta kallas även OAuth 2.0-token för direktautentisering.
Information om hur du skapar en OAuth 2.0-token för token-direktautentisering för tjänstens huvudnamn för Microsoft Entra-ID finns i Generera och använda åtkomsttoken manuellt för OAuth M2M-autentisering. Anteckna tjänstens huvudnamns OAuth-värde
access_token
.Information om hur du skapar ett microsoft entra-ID för hanterad tjänsthuvudnamn finns i Hantera tjänstens huvudnamn.
Viktigt!
JDBC-drivrutinen 2.6.36 och senare stöder användning av Azure Databricks OAuth-hemligheter för att skapa OAuth 2.0-token. Microsoft Entra-ID-hemligheter stöds inte.
OAuth 2.0-token har en standardlivslängd på 1 timme. Om du vill generera en ny OAuth 2.0-token upprepar du den här processen.
Om du vill autentisera med OAuth 2.0-tokens direktautentisering anger du följande konfiguration.
För en JDBC-anslutnings-URL med inbäddade allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
För Java-kod med allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter som anges utanför JDBC-anslutnings-URL:en:
// ...
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);
// ...
- Ett fullständigt Java-kodexempel som du kan anpassa föregående kodfragment till dina egna behov finns i kodexemplet i början av den här artikeln.
- I föregående URL eller Java-kod ersätter du
<oauth-token>
med Azure Databricks OAuth-token. (Microsoft Entra ID-token stöds inte för OAuth 2.0-tokens direktautentisering.) - Information om hur du hämtar värdena för
<server-hostname>
och<http-path>
finns i Beräkningsinställningar för Databricks JDBC-drivrutinen.
Mer information Token Pass-through
finns i avsnittet i drivrutinsguiden för Databricks JDBC.
OAuth-autentisering från användare till dator (U2M)
JDBC-drivrutinen 2.6.36 och senare stöder OAuth-autentisering från användare till dator (U2M) för en Azure Databricks-användare. Detta kallas även OAuth 2.0 webbläsarbaserad autentisering.
OAuth U2M- eller OAuth 2.0-webbläsarbaserad autentisering har inga krav. OAuth 2.0-token har en standardlivslängd på 1 timme. OAuth U2M- eller OAuth 2.0-webbläsarbaserad autentisering bör uppdatera OAuth 2.0-token som upphört att gälla automatiskt.
Kommentar
OAuth U2M- eller OAuth 2.0-webbläsarbaserad autentisering fungerar endast med program som körs lokalt. Det fungerar inte med serverbaserade eller molnbaserade program.
Om du vill autentisera med OAuth från användare till dator (U2M) eller OAuth 2.0 webbläsarbaserad autentisering anger du följande konfiguration.
För en JDBC-anslutnings-URL med inbäddade allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
För Java-kod med allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter som anges utanför JDBC-anslutnings-URL:en:
// ...
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);
// ...
- Ett fullständigt Java-kodexempel som du kan anpassa föregående kodfragment till dina egna behov finns i kodexemplet i början av den här artikeln.
- I föregående URL eller Java-kod ersätter du
<passphrase>
med valfri lösenfras. Drivrutinen använder den här nyckeln för kryptering av uppdateringstoken. - Information om hur du hämtar värdena för
<server-hostname>
och<http-path>
finns i Beräkningsinställningar för Databricks JDBC-drivrutinen.
Mer information Using Browser Based Authentication
finns i avsnittet i drivrutinsguiden för Databricks JDBC.
OAuth-autentisering från dator till dator (M2M)
JDBC-drivrutinen 2.6.36 och senare stöder M2M-autentisering (machine-to-machine) för en Microsoft Entra ID-tjänsthuvudnamn. Detta kallas även OAuth 2.0-klientautentiseringsuppgifter.
Gör följande för att konfigurera autentiseringsuppgifterna för OAuth M2M- eller OAuth 2.0-klienten:
Skapa ett Microsoft Entra ID-hanterat tjänsthuvudnamn och tilldela det sedan till Azure Databricks-konton och arbetsytor. Det gör du genom att läsa Hantera tjänstens huvudnamn.
Viktigt!
JDBC-drivrutinen 2.6.36 och senare stöder Azure Databricks OAuth-hemligheter för OAuth M2M- eller OAuth 2.0-klientautentiseringsuppgifter. Microsoft Entra-ID-hemligheter stöds inte.
Skapa en Azure Databricks OAuth-hemlighet för tjänstens huvudnamn. Det gör du genom att läsa Manuellt generera och använda åtkomsttoken för OAuth M2M-autentisering.
Ge tjänstens huvudnamn åtkomst till klustret eller informationslagret. Se Beräkningsbehörigheter eller Hantera ett SQL-lager.
Om du vill autentisera med hjälp av autentiseringsuppgifter för OAuth från dator till dator (M2M) eller OAuth 2.0-klientautentisering anger du följande konfiguration.
För en JDBC-anslutnings-URL med inbäddade allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
För Java-kod med allmänna konfigurationsegenskaper och egenskaper för känsliga autentiseringsuppgifter som anges utanför JDBC-anslutnings-URL:en:
// ...
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);
// ...
- Ett fullständigt Java-kodexempel som du kan anpassa föregående kodfragment till dina egna behov finns i kodexemplet i början av den här artikeln.
- Ersätt följande platshållare i föregående URL eller Java-kod:
- Ersätt
<service-principal-application-id>
med tjänstens huvudnamns program-ID (klient)-värde. - Ersätt
<service-principal-oauth-secret>
med tjänstens huvudnamns Azure Databricks OAuth-hemlighet. (Microsoft Entra ID-hemligheter stöds inte för OAuth M2M- eller OAuth 2.0-klientautentiseringsuppgifter.) - Information om hur du hämtar värdena för
<server-hostname>
och<http-path>
finns i Beräkningsinställningar för Databricks JDBC-drivrutinen.
- Ersätt
Mer information Using M2M Based Authentication
finns i avsnittet i drivrutinsguiden för Databricks JDBC.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för