共用方式為


Microsoft JDBC Driver for SQL Server 的功能相依性

下載 JDBC 驅動程式

本文會列出 Microsoft JDBC Driver for SQL Server 相依的程式庫。 此專案具有下列相依性:

編譯時間

  • com.azure:azure-security-keyvault-keys:適用於 JDBC 驅動程式 9.2 版和更新版本的 Microsoft Azure Client Library For KeyVault Keys 或 com.microsoft.azure:azure-keyvault:適用於 JDBC 驅動程式 8.4 版和更新版本的 Microsoft Azure SDK For Key Vault,適用於 Always Encrypted Azure Key Vault 功能。 (選用)
  • com.azure:azure-identity:適用於 JDBC 驅動程式 9.2 版和更新版本的身分識別之 Microsoft Azure 用戶端程式庫或 com.microsoft.azure:adal4j:針對 Microsoft Entra 驗證功能和 Azure Key Vault 功能,適用於 JDBC 驅動程式 8.4 版和更低版本的 Microsoft Entra 驗證程式庫。 (選用)
  • com.microsoft.azure:msal4j:適用於 JAVA 的 Microsoft Authentication Library (MSAL)。 (選用)
  • org.antlr:antlr4-runtime:適用於 useFmtOnly 功能的 ANTLR 4 執行階段。 (選用)
  • org.osgi:org.osgi.core:適用於 OSGi Framework 支援的 OSGi Core 程式庫。
  • org.osgi:org.osgi.service.jdbc:適用於 JDBC 的 OSGi 配套程式碼。
  • com.google.code.gson:JSON 剖析器 (適用於具有安全記憶體保護區的 Always Encrypted)。 (選用)
  • org.bouncycastle.bcprov-jdk18on:只有針對 JAVA 8 時,才是 Bouncy Castle 提供者 (適用於具有安全記憶體保護區的 Always Encrypted)。 (選用)

執行階段

需要上述任何功能的專案,必須在 POM 檔案中明確宣告其個別相依性,符合所使用驅動程式版本的相依性。

例如:如果您使用 Microsoft Entra 驗證功能搭配 JDBC 驅動程式 10.2 版和更新版本,則必須在專案 POM 檔案中宣告 azure-identity 相依性。 請參閱下列程式碼片段:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>10.2.0.jre11</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.4.3</version>
</dependency>

例如:如果您使用 Microsoft Entra 驗證功能搭配 JDBC 驅動程式 8.4 版和更低版本,則必須在專案 POM 檔案中宣告 adal4jclient-runtimes 相依性。 請參閱下列程式碼片段:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>8.4.0.jre11</version>
</dependency>

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>adal4j</artifactId>
    <version>1.6.5</version>
</dependency>

<dependency>
    <groupId>com.microsoft.rest</groupId>
    <artifactId>client-runtime</artifactId>
    <version>1.7.4</version>
</dependency>

例如:如果您使用 Azure Key Vault 功能搭配 JDBC 驅動程式 10.2 版和更新版本,則必須在專案 POM 檔案中宣告 azure-security-keyvault-keysazure-identity 相依性。 請參閱下列程式碼片段:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>10.2.0.jre11</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.4.3</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-security-keyvault-keys</artifactId>
    <version>4.3.6</version>
</dependency>

例如:如果您使用 Azure Key Vault 功能搭配 JDBC 驅動程式 8.4 版和以下版本,您必須在專案 POM 檔案中宣告 azure-keyvaultadal4jclient-runtime 相依性。 請參閱下列程式碼片段:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>8.4.0.jre11</version>
</dependency>

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>adal4j</artifactId>
    <version>1.6.5</version>
</dependency>

<dependency>
    <groupId>com.microsoft.rest</groupId>
    <artifactId>client-runtime</artifactId>
    <version>1.7.4</version>
</dependency>

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-keyvault</artifactId>
    <version>1.2.4</version>
</dependency>

注意

請務必使您所使用 JDBC 驅動程式版本中隨附的 POM 檔案版本。 相依性和版本可能已變更。

如果您使用 Maven 來建置或測試專案,Maven 會自動下載 POM 檔案中的相依程式庫及其可轉移的程式庫。 您也可以使用 Maven 相依性外掛程式,將所有專案相依性下載到所需的位置。 如果您不是使用 Maven,則必須手動下載相依性和可轉移相依性,以確保您擁有每個程式庫的所有正確版本。 下載必要的相依程式庫之後,請新增至您的專案類別路徑,以執行您的應用程式。

JDBC 驅動程式的相依性需求

使用 Azure Key Vault 提供者

  • JDBC 驅動程式 12.6.0 版 - 相依性版本:Azure-security-keyvault-keys (4.7.3 版)、Azure-identity (1.11.1 版) 與其相依性 (應用程式範例)
  • JDBC 驅動程式 12.4.0 版 - 相依性版本:Azure-security-keyvault-keys (4.6.1 版)、Azure-identity (1.9.0 版) 與其相依性 (應用程式範例)
  • JDBC 驅動程式 12.2.0 版 - 相依性版本:Azure-security-keyvault-keys (4.5.3 版)、Azure-identity (1.7.0 版) 與其相依性 (應用程式範例)
  • JDBC 驅動程式 11.2.0 版 - 相依性版本:Azure-security-keyvault-keys (4.4.1 版)、Azure-identity (1.5.0 版) 與其相依性 (應用程式範例)
  • JDBC 驅動程式 10.2.0 版 - 相依性版本:Azure-security-keyvault-keys (4.3.6 版)、Azure-identity (1.4.3 版) 與其相依性 (應用程式範例)
  • JDBC 驅動程式 9.4.1 版 - 相依性版本:Azure-security-keyvault-keys (4.2.8 版)、Azure-identity (1.3.3 版) 與其相依性 (應用程式範例)
  • JDBC 驅動程式 9.2.1 版 - 相依性版本:Azure-security-keyvault-keys (4.2.1 版)、Azure-identity (1.1.3 版) 與其相依性 (應用程式範例)
  • JDBC 驅動程式 8.4.1 版 - 相依性版本:Azure-Keyvault (1.2.4 版)、 Adal4j (1.6.5 版)、Client-Runtime-for-AutoRest (1.7.4 版本) 與其相依性 (範例應用程式)
  • JDBC 驅動程式 8.2.2 版 - 相依性版本:Azure-Keyvault (1.2.2 版)、 Adal4j (1.6.4 版)、Client-Runtime-for-AutoRest (1.7.0 版本) 與其相依性 (範例應用程式)
  • JDBC 驅動程式 7.4.1 版 - 相依性版本:Azure-Keyvault (1.2.1 版)、 Adal4j (1.6.4 版)、Client-Runtime-for-AutoRest (1.6.10 版本) 與其相依性 (範例應用程式)
  • JDBC 驅動程式 7.2.2 版 - 相依性版本:Azure-Keyvault (1.2.0 版)、Azure-Keyvault-Webkey (1.2.0 版)、 Adal4j (1.6.3 版)、Client-Runtime-for-AutoRest (1.6.5) 與其相依性 (範例應用程式)
  • JDBC 驅動程式 7.0.0 版 - 相依性版本:Azure-Keyvault (1.0.0 版)、Adal4j (1.6.0 版) 與其相依性 (範例應用程式)
  • JDBC 驅動程式 6.4.0 版 - 相依性版本:Azure-Keyvault (1.0.0 版)、Adal4j (1.4.0 版) 與其相依性 (範例應用程式)
  • JDBC 驅動程式 6.2.2 版 - 相依性版本:Azure-Keyvault (1.0.0 版)、Adal4j (1.4.0 版) 與其相依性 (範例應用程式)
  • JDBC 驅動程式 6.0.0 版 - 相依性版本:Azure-Keyvault (0.9.7 版)、Adal4j (1.3.0 版) 與其相依性 (範例應用程式)

注意

透過 6.2.2 和 6.4.0 驅動程式版本,已將 azure-keyvault-java 相依性更新為 1.0.0 版。 不過,新版本與先前版本 (0.9.7) 不相容,並且會中斷驅動程式中現有的實作。 驅動程式中的新實作需要 API 變更,接著會中斷使用 Azure Key Vault Provider 的用戶端程式。

此問題已透過最新的驅動程式版本 (7.0.0 及後續版本) 解決。 使用驗證回呼機制的已移除建構函式會加回 Azure Key Vault Provider,以提供回溯相容性。

使用 Microsoft Entra 驗證

  • JDBC 驅動程式 12.6.0 版 - 相依性版本: Azure-identity (1.11.1 版),Msal4j (1.14.1 版) 及其相依性。
  • JDBC 驅動程式 12.4.0 版 - 相依性版本: Azure-identity (1.9.0 版),Msal4j (1.13.8 版) 及其相依性。
  • JDBC 驅動程式 12.2.0 版 - 相依性版本: Azure-identity (1.7.0 版),Msal4j (1.13.3 版) 及其相依性。
  • JDBC 驅動程式 11.2.0 版 - 相依性版本:Azure-identity (1.5.0 版) 及其相依性。
  • JDBC 驅動程式 10.2.0 版 - 相依性版本:Azure-identity (1.4.3 版) 及其相依性。
  • JDBC 驅動程式 9.4.1 版 - 相依性版本:Azure-identity (1.3.3 版) 及其相依性。
  • JDBC 驅動程式 9.2.1 版 - 相依性版本:Azure-identity (1.1.3 版) 及其相依性。
  • JDBC 驅動程式 8.4.1 版 - 相依性版本:Adal4j (1.6.5 版)、Client-Runtime-for-AutoRest (1.7.4) 及其相依性。
  • JDBC 驅動程式 8.2.2 版 - 相依性版本:Adal4j (1.6.4 版)、Client-Runtime-for-AutoRest (1.7.0) 及其相依性。 在此驅動程式版本中,sqljdbc_auth.dll 已重新命名為 mssql-jdbc_auth-\<version>-\<arch>.dll
  • JDBC 驅動程式 7.4.1 版 - 相依性版本:Adal4j (1.6.4 版)、Client-Runtime-for-AutoRest (1.6.10) 及其相依性
  • JDBC 驅動程式 7.2.2 版 - 相依性版本:Adal4j (1.6.3 版)、Client-Runtime-for-AutoRest (1.6.5) 及其相依性
  • JDBC 驅動程式 7.0.0 版 - 相依性版本:Adal4j (1.6.0 版) 及其相依性
  • JDBC 驅動程式 6.4.0 版 - 相依性版本:Adal4j (1.4.0 版) 及其相依性
  • JDBC 驅動程式 6.2.2 版 - 相依性版本:Adal4j (1.4.0 版) 及其相依性
  • JDBC 驅動程式 6.0.0 版 - 相依性版本:Adal4j (1.3.0 版) 及其相依性。 在此版本的驅動程式中,您可以藉由只在 Windows 作業系統上使用 ActiveDirectoryIntegrated 驗證模式,以及使用 sqljdbc_auth.dll 和適用於 SQL Server 的 Active Directory 驗證程式庫 (ADALSQL.DLL) 來連線。

從驅動程式 6.4.0 版開始,應用程式不一定需要在 Windows 作業系統上使用 ADALSQL.DLL。 針對非 Windows 作業系統,驅動程式需要 Kerberos 票證,才能使用 ActiveDirectoryIntegrated 驗證。 如需如何使用 Kerberos 連線至 Active Directory 的詳細資訊,請參閱在 Windows、Linux 和 macOS 上設定 Kerberos 票證

針對 Windows 作業系統,驅動程式預設會尋找 sqljdbc_auth.dll,而且不需要設定 Kerberos 票證或 Azure 程式庫相依性。 如果 sqljdbc_auth.dll 無法使用,驅動程式就會尋找可用來向 Active Directory 進行驗證的 Kerberos 票證,就像在其他作業系統上一樣。

從驅動程式 8.2.2 版開始,sqljdbc_auth.dll 會重新命名為 mssql-jdbc_auth-\<version>-\<arch>.dll。 例如: mssql-jdbc_auth-8.2.2.x64.dll

除了 JDBC 驅動程式套件中提供的 mssql-jdbc_auth<-version>-<arch >.dll 之外,也必須安裝 Azure Active Directory 驗證程式庫 (ADAL.DLL) 以進行 Active Directory 整合式驗證。 您可以從 Microsoft ODBC Driver for SQL ServerMicrosoft OLE DB Driver for SQL Server 安裝 Microsoft Azure Active Directory 驗證程式庫。 JDBC 驅動程式只支援 ADAL.DLL 的 1.0.2028.318 版和更高版本

您可以取得使用此功能的範例應用程式

另請參閱

JDBC Driver GitHub 存放庫 \(英文\)
JDBC Driver API 參考