A Databricks JDBC-illesztőprogram hitelesítési beállításai
Ez a cikk bemutatja, hogyan konfigurálhatja az Azure Databricks hitelesítési beállításait a Databricks JDBC-illesztőprogramhoz.
Ha Azure Databricks-kapcsolatot szeretne konfigurálni a Databricks JDBC-illesztőprogramhoz, kombinálnia kell a számítási erőforrás beállításait, az illesztőprogram-képességek beállításait és a következő hitelesítési beállításokat egy JDBC-kapcsolat URL-címével vagy JDBC-kapcsolattulajdonságok programozott gyűjteményével.
A JDBC-kapcsolat URL-címei a következő formátumot használják:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
- A Databricks JDBC-illesztő
<server-hostname>
az értékek<http-path>
lekéréséhez. - Szükség szerint cserélje le
<setting>=<value>
az alábbi szakaszokban felsorolt kapcsolati tulajdonságokat. - Speciális vagy speciális illesztőprogram-képességeket is megadhat.
A JDBC-kapcsolat tulajdonságainak programozott gyűjteményei a Java-kódban használhatók, például az alábbi példában:
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);
}
}
- Állítsa be a környezeti és a
DATABRICKS_SERVER_HOSTNAME
környezeti értékeket a cél Azure Databricks számítási erőforrásDATABRICKS_HTTP_PATH
és HTTP-elérési útja értékeire. Az értékek lekéréséhez tekintse meg a Databricks JDBC-illesztőprogram számítási beállításait. A környezeti változók beállításához tekintse meg az operációs rendszer dokumentációját. - Cserélje le
<setting>
és<value>
szükség szerint az alábbi szakaszokban felsorolt kapcsolati tulajdonságokat. - Speciális vagy speciális illesztőképesség-beállításokat is hozzáadhat, általában további
<setting>
és<value>
párokként. - Ebben a példában cserélje le
<query>
egy SQL-lekérdezésiSELECT
sztringre.
A célalkalmazás, az eszköz, az ügyfél, az SDK vagy az API követelményeitől függ, hogy kapcsolati URL-címet vagy kapcsolattulajdonság-gyűjteményt használ-e. A cikkben JDBC kapcsolati URL-címekre és JDBC-kapcsolattulajdonságok programozott gyűjteményére találhat példákat minden támogatott Azure Databricks-hitelesítési típushoz.
A Databricks JDBC-illesztőprogram a következő Azure Databricks-hitelesítési típusokat támogatja:
- Microsoft Entra ID token
- OAuth 2.0-jogkivonatok
- OAuth user-to-machine (U2M) hitelesítés
- OAuth gépről gépre (M2M) hitelesítés
Microsoft Entra ID token
Az ODBC- és JDBC-illesztőprogramok 2.6.15-ös vagy újabb verziója támogatja a Microsoft Entra ID-jogkivonatokat egy Azure Databricks-felhasználóhoz vagy egy Microsoft Entra ID szolgáltatásnévhez.
Microsoft Entra ID hozzáférési jogkivonat létrehozásához tegye a következőket:
- Azure Databricks-felhasználó esetén használhatja az Azure CLI-t. Lásd: Microsoft Entra-azonosító jogkivonatok lekérése felhasználók számára az Azure CLIhasználatával.
- A Microsoft Entra ID szolgáltatásnévvel kapcsolatban lásd : Microsoft Entra ID hozzáférési jogkivonat beszerzése az Azure CLI-vel. A Microsoft Entra ID által felügyelt szolgáltatásnév létrehozásához lásd: Szolgáltatásnevek kezelése.
A Microsoft Entra ID hozzáférési jogkivonatok alapértelmezett élettartama körülbelül 1 óra. A hozzáférési jogkivonatok programozott módon frissíthetők egy meglévő munkamenethez anélkül, hogy megszakítanák a kapcsolatot a Kód frissítése a Microsoft Entra-azonosító hozzáférési jogkivonatában való futtatásával. A jogkivonat frissítésével kapcsolatos utasításokért tekintse meg a Configuring Authentication > Using OAuth 2.0
szakaszát.
A Microsoft Entra ID-jogkivonat használatával történő hitelesítéshez állítsa be a következő konfigurációt.
Beágyazott általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező JDBC-kapcsolat URL-címe esetén:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
A JDBC-kapcsolat URL-címén kívül beállított általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező Java-kód esetén:
// ...
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);
// ...
- Ha egy teljes Java-kódpéldát szeretne, amely az előző kódrészletet saját igényeihez igazíthatja, tekintse meg a cikk elején látható kódpéldát.
- Az előző URL-címben vagy Java-kódban cserélje le
<microsoft-entra-id-token>
a Microsoft Entra ID-jogkivonatot. - A Databricks JDBC-illesztő
<server-hostname>
az értékek<http-path>
lekéréséhez.
További információkért tekintse meg a Token Pass-through
Databricks JDBC illesztőprogram-útmutatójának szakaszát.
OAuth 2.0-jogkivonatok
A JDBC-illesztő 2.6.36-os és újabb verziója támogatja az OAuth 2.0-jogkivonatot a Microsoft Entra ID szolgáltatásnévhez. Ezt OAuth 2.0-s jogkivonat-átengedési hitelesítésnek is nevezik .
- Ha OAuth 2.0 token-t szeretne létrehozni a Microsoft Entra ID szolgáltatás objektum token alapú hitelesítéséhez, lásd Hozzáférési tokenek manuális létrehozása és használata az OAuth szolgáltatás objektum hitelesítéséhez. Jegyezze fel a szolgáltatásnév OAuth-értékét
access_token
. - A Microsoft Entra ID által felügyelt szolgáltatásnév létrehozásához lásd: Szolgáltatásnevek kezelése.
Fontos
A JDBC-illesztő 2.6.36-os és újabb verziója támogatja az Azure Databricks OAuth titkos kulcsainak használatát OAuth 2.0-jogkivonatok létrehozásához. A Microsoft Entra-azonosító titkos kulcsai nem támogatottak.
Az OAuth 2.0-jogkivonatok alapértelmezett élettartama 1 óra. Új OAuth 2.0-jogkivonat létrehozásához ismételje meg ezt a folyamatot.
Az OAuth 2.0 jogkivonat-átmenő hitelesítéssel történő hitelesítéshez állítsa be a következő konfigurációt.
Beágyazott általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező JDBC-kapcsolat URL-címe esetén:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
A JDBC-kapcsolat URL-címén kívül beállított általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező Java-kód esetén:
// ...
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);
// ...
- Ha egy teljes Java-kódpéldát szeretne, amely az előző kódrészletet saját igényeihez igazíthatja, tekintse meg a cikk elején látható kódpéldát.
- Az előző URL-címben vagy Java-kódban cserélje le
<oauth-token>
az Azure Databricks OAuth-jogkivonatot. (A Microsoft Entra-azonosító jogkivonatok nem támogatottak az OAuth 2.0-s jogkivonatok átmenő hitelesítéséhez.) - A Databricks JDBC-illesztő
<server-hostname>
az értékek<http-path>
lekéréséhez.
További információkért tekintse meg a Token Pass-through
Databricks JDBC illesztőprogram-útmutatójának szakaszát.
OAuth user-to-machine (U2M) hitelesítés
A JDBC-illesztő 2.6.36-os és újabb verziója támogatja az OAuth felhasználó–gép (U2M) hitelesítést egy Azure Databricks-felhasználó esetében. Ezt OAuth 2.0 böngészőalapú hitelesítésnek is nevezik.
Az OAuth U2M vagy OAuth 2.0 böngészőalapú hitelesítésnek nincsenek előfeltételei. Az OAuth 2.0-jogkivonatok alapértelmezett élettartama 1 óra. Az OAuth U2M-nek vagy az OAuth 2.0 böngészőalapú hitelesítésnek automatikusan frissítenie kell a lejárt OAuth 2.0-jogkivonatokat.
Feljegyzés
Az OAuth U2M vagy OAuth 2.0 böngészőalapú hitelesítés csak helyileg futó alkalmazásokkal működik. Nem működik kiszolgálóalapú vagy felhőalapú alkalmazásokkal.
Ha OAuth felhasználó–gép (U2M) vagy OAuth 2.0 böngészőalapú hitelesítés használatával szeretne hitelesítést végezni, állítsa be a következő konfigurációt.
Beágyazott általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező JDBC-kapcsolat URL-címe esetén:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
A JDBC-kapcsolat URL-címén kívül beállított általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező Java-kód esetén:
// ...
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);
// ...
- Ha egy teljes Java-kódpéldát szeretne, amely az előző kódrészletet saját igényeihez igazíthatja, tekintse meg a cikk elején látható kódpéldát.
- Az előző URL-címben vagy Java-kódban cserélje le
<passphrase>
a kívánt jelszót. Az illesztőprogram ezt a kulcsot használja a frissítési jogkivonat titkosításához. - A Databricks JDBC-illesztő
<server-hostname>
az értékek<http-path>
lekéréséhez.
További információkért tekintse meg a Using Browser Based Authentication
Databricks JDBC illesztőprogram-útmutatójának szakaszát.
OAuth machine-to-machine (M2M) hitelesítés
A JDBC-illesztő 2.6.36-os és újabb verziója támogatja az OAuth machine-to-machine (M2M) hitelesítést a Microsoft Entra ID szolgáltatásnévhez. Ez más néven OAuth 2.0 ügyfél hitelesítő.
Feljegyzés
A JDBC 2.6.40.1071 megoldja azt a problémát a régebbi verziókban, amelyek nem támogatták az M2M-et a privát kapcsolati munkaterületekhez való csatlakozáshoz.
Az OAuth M2M vagy az OAuth 2.0 ügyfél hitelesítő adatainak hitelesítésének konfigurálásához tegye a következőket:
Hozzon létre egy Microsoft Entra ID által felügyelt szolgáltatásnevet, majd rendelje hozzá az Azure Databricks-fiókokhoz és -munkaterületekhez. Ehhez olvassa el a Szolgáltatásnevek kezelése című témakört.
Fontos
A JDBC-illesztő 2.6.36-os és újabb verziója támogatja az Azure Databricks OAuth-titkos kódokat az OAuth M2M vagy az OAuth 2.0 ügyfél hitelesítő adatainak hitelesítéséhez. A Microsoft Entra-azonosító titkos kulcsai nem támogatottak.
Hozzon létre egy Azure Databricks OAuth-titkos kulcsot a szolgáltatásnévhez. Ehhez lásd: Hozzáférési jogkivonatok manuális létrehozása és használata az OAuth szolgáltatási főszereplő hitelesítéshez.
Adjon hozzáférést a szolgáltatásnévnek a fürthöz vagy a raktárhoz. Lásd: Számítási engedélyek vagy SQL-raktár kezelése.
Az OAuth machine-to-machine (M2M) vagy az OAuth 2.0 ügyfél hitelesítő adatainak hitelesítésével történő hitelesítéshez állítsa be a következő konfigurációt.
Beágyazott általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező JDBC-kapcsolat URL-címe esetén:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
A JDBC-kapcsolat URL-címén kívül beállított általános konfigurációs tulajdonságokkal és bizalmas hitelesítő adatokkal rendelkező Java-kód esetén:
// ...
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);
// ...
- Ha egy teljes Java-kódpéldát szeretne, amely az előző kódrészletet saját igényeihez igazíthatja, tekintse meg a cikk elején látható kódpéldát.
- Az előző URL-címben vagy Java-kódban cserélje le a következő helyőrzőket:
- Cserélje le
<service-principal-application-id>
a szolgáltatásnév alkalmazás-(ügyfél-) azonosítójának értékét. - Cserélje le
<service-principal-oauth-secret>
a szolgáltatásnév Azure Databricks OAuth-titkos kódjára. (A Microsoft Entra-azonosító titkos kulcsai nem támogatottak az OAuth M2M vagy az OAuth 2.0 ügyfél hitelesítő adatainak hitelesítéséhez.) - A Databricks JDBC-illesztő
<server-hostname>
az értékek<http-path>
lekéréséhez.
- Cserélje le
További információkért tekintse meg a Using M2M Based Authentication
Databricks JDBC illesztőprogram-útmutatójának szakaszát.