備註
本頁適用於 Databricks JDBC 驅動程式版本低於版本 3。 關於 Databricks JDBC 驅動程式版本 3 及以上,請參見 Databricks JDBC 驅動程式。
本頁說明如何設定 Data Bricks JDBC 驅動程式的 Azure Databricks 認證設定。
Databricks JDBC Driver 支援下列 Azure Databricks 驗證類型:
- Microsoft Entra ID 憑證
- OAuth 2.0 令牌
- OAuth 使用者對機器(U2M)驗證
- Microsoft Entra ID OAuth 使用者對計算機 (U2M) 驗證
- OAuth 計算機對電腦 (M2M) 驗證
- Microsoft Entra ID OAuth 機器對機器 (M2M) 驗證
Microsoft Entra ID 存取憑證
ODBC 和 JDBC 驅動程式 2.6.15 和更高版本支援 Microsoft Entra ID 令牌,用於 Azure Databricks 使用者或 Microsoft Entra ID 服務主體。
若要建立 Microsoft Entra ID 存取權杖,請按照下列步驟操作:
- 針對 Azure Databricks 使用者,您可使用 Azure CLI。 請參閱 手動取得 Microsoft Entra ID 令牌。
- 如需 Microsoft Entra ID 服務主體的相關資訊,請參閱 取得服務主體的權杖。 若要建立Microsoft Entra ID 受控服務主體,請參閱 服務主體。
Microsoft Entra ID 存取權杖的預設壽命約為一小時。 透過執行 Refresh token 程式碼,程式化地為現有會話刷新存取權杖,且不會中斷連線。 有關說明,請參閱 Databricks JDBC 驅動程式指南中的 「使用 OAuth 2.0 」。
若要使用 Microsoft Entra ID 令牌進行驗證,請設定下列組態。
針對具有內嵌一般組態屬性和敏感性認證屬性的 JDBC 連線 URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
針對在 JDBC 連線 URL 外部設定的一般配置屬性和敏感憑證屬性的 Java 程式碼:
// ...
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);
// ...
- 在上述 URL 或 Java 程式代碼中,將
<microsoft-entra-id-token>取代為 Microsoft Entra ID 令牌。 - 若要取得 和
<server-hostname>的<http-path>值,請參閱 Databricks JDBC 驅動程式 (Simba) 的計算設定。
欲了解更多資訊,請參閱 Databricks JDBC 驅動程式指南中的 代幣通過(Token Pass-through )章節(HTML 或 PDF)。
OAuth 2.0 代幣
JDBC 驅動程式 2.6.36 和更新版本支援Microsoft Entra ID 服務主體的 OAuth 2.0 令牌。 這也稱為 OAuth 2.0 令牌傳遞 驗證。
- 若要建立 OAuth 2.0 權杖,以進行 Microsoft Entra ID 服務主體的權杖傳遞驗證,請參閱 手動產生 OAuth M2M 存取權杖。 記下服務主體的 OAuth
access_token值。 - 若要建立Microsoft Entra ID 受控服務主體,請參閱 服務主體。
這很重要
JDBC 驅動程式 2.6.36 和更新版本支援使用 Azure Databricks OAuth 秘密來建立 OAuth 2.0 令牌。 不支援 Microsoft Entra ID 機密。
OAuth 2.0 令牌的預設有效時間為 1 小時。 若要產生新的 OAuth 2.0 令牌,請重複此程式。
若要使用 OAuth 2.0 令牌傳遞驗證進行驗證,請設定下列設定。
針對具有內嵌一般組態屬性和敏感性認證屬性的 JDBC 連線 URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
針對在 JDBC 連線 URL 外部設定的一般配置屬性和敏感憑證屬性的 Java 程式碼:
// ...
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);
// ...
- 在上述 URL 或 Java 程式代碼中,將
<oauth-token>替換為 Azure Databricks OAuth 令牌。 (Microsoft Entra ID 權杖不支援 OAuth 2.0 權杖傳遞驗證。) - 若要取得 和
<server-hostname>的<http-path>值,請參閱 Databricks JDBC 驅動程式 (Simba) 的計算設定。
欲了解更多資訊,請參閱 Databricks JDBC 驅動程式指南中的 代幣通過(Token Pass-through )章節(HTML 或 PDF)。
OAuth 使用者對電腦 (U2M) 驗證
JDBC 驅動程式 2.6.36 和更新版本支援 Azure Databricks 使用者的 OAuth 使用者對電腦 (U2M) 驗證。 這也稱為 OAuth 2.0 瀏覽器型驗證。
OAuth U2M 或 OAuth 2.0 瀏覽器型驗證沒有必要條件。 OAuth 2.0 令牌的預設有效時間為 1 小時。 OAuth U2M 或 OAuth 2.0 瀏覽器型驗證應該會自動為您重新整理過期的 OAuth 2.0 令牌。
備註
OAuth U2M 或 OAuth 2.0 瀏覽器型驗證僅適用於在本機執行的應用程式。 它不適用於伺服器型或雲端式應用程式。
若要使用 OAuth 使用者對電腦 (U2M) 或 OAuth 2.0 瀏覽器型驗證進行驗證,請設定下列設定。
針對具有內嵌一般組態屬性和敏感性認證屬性的 JDBC 連線 URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
針對在 JDBC 連線 URL 外部設定的一般配置屬性和敏感憑證屬性的 Java 程式碼:
// ...
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);
// ...
- 在上述 URL 或 Java 程式代碼中,以您選擇的複雜密碼取代
<passphrase>。 驅動程式會使用此金鑰進行重新整理令牌加密。 - 若要取得 和
<server-hostname>的<http-path>值,請參閱 Databricks JDBC 驅動程式 (Simba) 的計算設定。
欲了解更多資訊,請參閱 Databricks JDBC 驅動程式指南中的 「使用瀏覽器驗證 」章節(HTML 或 PDF)。
Microsoft Entra ID OAuth 使用者對機器 (U2M) 驗證
JDBC 驅動程式 2.7.1 和更新版本支援 Azure Databricks 使用者的 Microsoft Entra ID OAuth 使用者對計算機 (U2M) 驗證。 這也稱為 OAuth 2.0 瀏覽器型驗證。
OAuth U2M 或 OAuth 2.0 瀏覽器型驗證沒有必要條件。 OAuth 2.0 令牌的預設有效時間為 1 小時。 OAuth U2M 或 OAuth 2.0 瀏覽器型驗證應該會自動為您重新整理過期的 OAuth 2.0 令牌。
備註
OAuth U2M 或 OAuth 2.0 瀏覽器型驗證僅適用於在本機執行的應用程式。 它不適用於伺服器型或雲端式應用程式。
若要使用 Microsoft Entra ID OAuth 使用者對計算機 (U2M) 進行驗證,OAuth 用戶端 (application) 必須在 Microsoft Entra ID 中註冊,請參閱 在 Microsoft entra ID 中註冊用戶端應用程式。 然後設定下列組態:
針對具有內嵌一般組態屬性和敏感性認證屬性的 JDBC 連線 URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true
針對在 JDBC 連線 URL 外部設定的一般配置屬性和敏感憑證屬性的 Java 程式碼:
// ...
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");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- 在上述 URL 或 Java 程式代碼中,以您選擇的複雜密碼取代
<passphrase>。 驅動程式會使用此金鑰進行重新整理令牌加密。 - 若要取得 和
<server-hostname>的<http-path>值,請參閱 Databricks JDBC 驅動程式 (Simba) 的計算設定。
欲了解更多資訊,請參閱 Databricks JDBC 驅動程式指南中的 「使用瀏覽器驗證 」章節(HTML 或 PDF)。
OAuth 計算機對電腦 (M2M) 驗證
JDBC 驅動程式 2.6.36 和更新版本支援Microsoft Entra ID 服務主體的 OAuth 機器對機器 (M2M) 驗證。 這也稱為 OAuth 2.0 客戶端認證 驗證。
備註
JDBC 2.6.40.1071 解決了舊版無法使用 M2M 支援私人連結工作區連線的問題。
若要設定 OAuth M2M 或 OAuth 2.0 用戶端認證驗證,請執行下列動作:
建立Microsoft Entra ID 受控服務主體,然後將它指派給 Azure Databricks 帳戶和工作區。 若要這樣做,請參閱 服務主體。
為服務主體建立 Azure Databricks 的 OAuth 憑證秘鑰。 若要這麼做,請參閱 手動產生 OAuth M2M 存取權杖。
若要使用 OAuth 計算機對電腦 (M2M) 或 OAuth 2.0 用戶端認證驗證進行驗證,請設定下列設定。
針對具有內嵌一般組態屬性和敏感性認證屬性的 JDBC 連線 URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
針對在 JDBC 連線 URL 外部設定的一般配置屬性和敏感憑證屬性的 Java 程式碼:
// ...
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);
// ...
- 在上述 URL 或 Java 程式代碼中,取代下列佔位元:
- 將
<service-principal-application-id>取代為服務主體的 應用程式(用戶端)識別碼 值。 - 將 取代
<service-principal-oauth-secret>為服務主體的 Azure Databricks OAuth 秘密。 (Microsoft Entra ID 秘密不支援 OAuth M2M 或 OAuth 2.0 用戶端憑證驗證。) - 若要取得 和
<server-hostname>的<http-path>值,請參閱 Databricks JDBC 驅動程式 (Simba) 的計算設定。
- 將
欲了解更多資訊,請參閱 Databricks JDBC 驅動程式指南中的 「使用 M2M 基礎認證 」章節(HTML 或 PDF)。
Microsoft Entra ID OAuth 機器對機器 (M2M) 驗證
JDBC 驅動程式 2.7.1 和後續版本支援 Microsoft Entra ID OAuth 機器對機器(M2M)驗證,適用於 Microsoft Entra ID 的服務主體。 這也稱為 OAuth 2.0 客戶端認證 驗證。
若要設定 Entra ID OAuth M2M 驗證,請執行下列動作:
建立Microsoft Entra ID 受控服務主體,然後將它指派給 Azure Databricks 帳戶和工作區。 若要這樣做,請參閱 服務主體。
為 Entra ID 服務主體建立 OAuth 密鑰。 若要這麼做,請參閱 手動產生 OAuth M2M 存取權杖。
若要使用 Entra ID OAuth 計算機對電腦 (M2M) 進行驗證,請設定下列設定。
針對具有內嵌一般組態屬性和敏感性認證屬性的 JDBC 連線 URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true
針對在 JDBC 連線 URL 外部設定的一般配置屬性和敏感憑證屬性的 Java 程式碼:
// ...
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", "<entra-id-service-principal-application-id>");
p.put("OAuth2Secret", "<entra-id-service-principal-client-secret>");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- 在上述 URL 或 Java 程式代碼中,取代下列佔位元:
- 將
<entra-id-service-principal-application-id>替換為 Entra 中服務主體的應用程式識別碼值。 - 請將
<entra-id-service-principal-client-secret>替換為 Entra 中的服務系統密碼。 這是您在 Microsoft Entra ID 的 [證書和祕密] 中建立的用戶端密碼。 - 若要取得 和
<server-hostname>的<http-path>值,請參閱 Databricks JDBC 驅動程式 (Simba) 的計算設定。
- 將