Nastavení ověřování pro ovladač Databricks JDBC
Tento článek popisuje, jak nakonfigurovat nastavení ověřování Azure Databricks pro ovladač Databricks JDBC.
Pokud chcete nakonfigurovat připojení Azure Databricks pro ovladač Databricks JDBC, musíte zkombinovat nastavení výpočetních prostředků, nastavení možností ovladače a následující nastavení ověřování do adresy URL připojení JDBC nebo programové kolekce vlastností připojení JDBC.
Adresy URL připojení JDBC používají následující formát:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
- Pokud chcete získat hodnoty pro
<server-hostname>
a<http-path>
, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks. - Podle potřeby nahraďte
<setting>=<value>
každou z vlastností připojení, jak je uvedeno v následujících částech. - Můžete také přidat speciální nebo pokročilá nastavení možností ovladače.
Programové kolekce vlastností připojení JDBC lze použít v kódu Jazyka Java, například v následujícím příkladu:
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
Nastavte hodnoty prostředíDATABRICKS_HTTP_PATH
na cílový název hostitele serveru a cestu HTTP cílového prostředku Azure Databricks. Pokud chcete získat tyto hodnoty, přečtěte si informace o nastavení výpočetních prostředků pro ovladač Databricks JDBC. Pokud chcete nastavit proměnné prostředí, přečtěte si dokumentaci k vašemu operačnímu systému. - Nahraďte
<setting>
a<value>
podle potřeby pro každou z vlastností připojení, jak je uvedeno v následujících částech. - Můžete také přidat speciální nebo pokročilá nastavení možností ovladače, obvykle jako další
<setting>
a<value>
páry. - V tomto příkladu nahraďte
<query>
řetězcem dotazu SQLSELECT
.
Bez ohledu na to, jestli použijete adresu URL připojení nebo kolekci vlastností připojení, budou záviset na požadavcích cílové aplikace, nástroje, klienta, sady SDK nebo rozhraní API. Příklady adres URL připojení JDBC a programových kolekcí vlastností připojení JDBC najdete v tomto článku pro každý podporovaný typ ověřování Azure Databricks.
Ovladač Databricks JDBC podporuje následující typy ověřování Azure Databricks:
- Token ID Microsoft Entra
- Tokeny OAuth 2.0
- Ověřování uživatele OAuth na počítač (U2M)
- Ověřování OAuth mezi počítači (M2M)
Token ID Microsoft Entra
Ovladače ODBC a JDBC 2.6.15 a vyšší podporují tokeny MICROSOFT Entra ID pro uživatele Azure Databricks nebo instanční objekt Microsoft Entra ID.
Pokud chcete vytvořit přístupový token Microsoft Entra ID, postupujte takto:
- Pro uživatele Azure Databricks můžete použít Azure CLI. Viz Získání tokenů ID Microsoft Entra pro uživatele pomocí Azure CLI.
- Instanční objekt Microsoft Entra ID najdete v tématu Získání přístupového tokenu Microsoft Entra ID pomocí Azure CLI. Informace o vytvoření spravovaného instančního objektu Microsoft Entra ID najdete v tématu Správa instančních objektů.
Přístupové tokeny Microsoft Entra ID mají výchozí životnost přibližně 1 hodinu. Přístupový token lze aktualizovat programově pro existující relaci bez přerušení připojení spuštěním kódu v aktualizaci přístupového tokenu Microsoft Entra ID. Pokyny k aktualizaci tokenu najdete v části Configuring Authentication > Using OAuth 2.0
průvodce ovladačem Databricks JDBC.
Pokud chcete provést ověření pomocí tokenu Microsoft Entra ID, nastavte následující konfiguraci.
Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:
// ...
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);
// ...
- Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
- V předchozí adrese URL nebo kódu Java nahraďte
<microsoft-entra-id-token>
tokenem Microsoft Entra ID. - Pokud chcete získat hodnoty pro
<server-hostname>
a<http-path>
, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.
Další informace najdete Token Pass-through
v části Průvodce ovladačem Databricks JDBC.
Tokeny OAuth 2.0
Ovladač JDBC 2.6.36 a vyšší podporuje token OAuth 2.0 pro instanční objekt Microsoft Entra ID. Označuje se také jako předávací ověřování tokenu OAuth 2.0.
- Pokud chcete vytvořit token OAuth 2.0 pro předávací ověřování tokenu pro instanční objekt Microsoft Entra ID, přečtěte si téma Ruční generování a použití přístupových tokenů pro ověřování OAuth M2M. Poznamenejte si hodnotu OAuth
access_token
instančního objektu. - Informace o vytvoření spravovaného instančního objektu Microsoft Entra ID najdete v tématu Správa instančních objektů.
Důležité
Ovladač JDBC 2.6.36 a vyšší podporuje použití tajných kódů OAuth Azure Databricks K vytvoření tokenů OAuth 2.0. Tajné kódy MICROSOFT Entra ID nejsou podporovány.
Tokeny OAuth 2.0 mají výchozí životnost 1 hodinu. Pokud chcete vygenerovat nový token OAuth 2.0, opakujte tento proces.
Pokud se chcete ověřit pomocí předávacího ověřování tokenu OAuth 2.0, nastavte následující konfiguraci.
Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:
// ...
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);
// ...
- Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
- V předchozí adrese URL nebo kódu Java nahraďte
<oauth-token>
tokenem Azure Databricks OAuth. (Předávací ověřování pomocí tokenu OAuth 2.0 nepodporuje tokeny Microsoft Entra ID.) - Pokud chcete získat hodnoty pro
<server-hostname>
a<http-path>
, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.
Další informace najdete Token Pass-through
v části Průvodce ovladačem Databricks JDBC.
Ověřování uživatele OAuth na počítač (U2M)
Ovladač JDBC 2.6.36 a novější podporuje ověřování uživatele AAuth (U2M) pro uživatele Azure Databricks. Označuje se také jako ověřování založené na prohlížeči OAuth 2.0.
Ověřování založené na prohlížeči OAuth U2M nebo OAuth 2.0 nemá žádné požadavky. Tokeny OAuth 2.0 mají výchozí životnost 1 hodinu. Ověřování založené na prohlížeči OAuth U2M nebo OAuth 2.0 by mělo automaticky aktualizovat tokeny OAuth 2.0.
Poznámka:
Ověřování založené na prohlížeči OAuth U2M nebo OAuth 2.0 funguje jenom s aplikacemi, které běží místně. Nefunguje s serverovými nebo cloudovými aplikacemi.
Pokud se chcete ověřit pomocí ověřování založeného na uživateli OAuth na počítači (U2M) nebo OAuth 2.0 v prohlížeči, nastavte následující konfiguraci.
Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:
// ...
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);
// ...
- Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
- V předchozí adrese URL nebo kódu Java nahraďte
<passphrase>
heslem podle vašeho výběru. Ovladač používá tento klíč k šifrování obnovovacího tokenu. - Pokud chcete získat hodnoty pro
<server-hostname>
a<http-path>
, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.
Další informace najdete Using Browser Based Authentication
v části Průvodce ovladačem Databricks JDBC.
Ověřování M2M (machine-to-machine) OAuth
Ovladač JDBC 2.6.36 a vyšší podporuje ověřování OAuth machine-to-machine (M2M) pro instanční objekt Microsoft Entra ID. To se také označuje jako ověřování přihlašovacích údajů klienta OAuth 2.0.
Poznámka:
JDBC 2.6.40.1071 řeší problém ve starších verzích, které se pro pracovní prostory privátních propojení připojují pomocí M2M.
Pokud chcete nakonfigurovat ověřování přihlašovacích údajů klienta OAuth M2M nebo OAuth 2.0, postupujte takto:
Vytvořte spravovaný instanční objekt Microsoft Entra ID a pak ho přiřaďte k účtům a pracovním prostorům Azure Databricks. Postup najdete v tématu Správa instančních objektů.
Důležité
Ovladač JDBC 2.6.36 a novější podporuje tajné kódy OAuth Azure Databricks pro ověřování přihlašovacích údajů klienta OAuth M2M nebo OAuth 2.0. Tajné kódy MICROSOFT Entra ID nejsou podporovány.
Vytvořte tajný klíč Azure Databricks OAuth pro instanční objekt. Postup najdete v tématu Ruční generování a používání přístupových tokenů pro ověřování OAuth M2M.
Udělte instančnímu objektu přístup ke clusteru nebo skladu. Přečtěte si informace o výpočetních oprávněních nebo správě SLUŽBY SQL Warehouse.
Pokud se chcete ověřit pomocí ověřování pomocí klienta OAuth machine-to-machine (M2M) nebo ověřování pomocí přihlašovacích údajů klienta OAuth 2.0, nastavte následující konfiguraci.
Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:
// ...
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);
// ...
- Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
- V předchozí adrese URL nebo kódu Java nahraďte následující zástupné symboly:
- Nahraďte
<service-principal-application-id>
hodnotou ID aplikace (klienta) instančního objektu. - Nahraďte
<service-principal-oauth-secret>
tajným kódem Azure Databricks OAuth instančního objektu. (Ověřování přihlašovacích údajů klienta OAuth M2M nebo OAuth 2.0 nepodporuje tajné kódy MICROSOFT Entra ID.) - Pokud chcete získat hodnoty pro
<server-hostname>
a<http-path>
, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.
- Nahraďte
Další informace najdete Using M2M Based Authentication
v části Průvodce ovladačem Databricks JDBC.