Microsoft JDBC Driver for SQL Server 的功能相依性
本文會列出 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 檔案中宣告 adal4j
和 client-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-keys
和 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>
<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-keyvault
、adal4j
和 client-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.8.0 版 - 相依性版本:Azure-security-keyvault-keys (4.7.3 版)、Azure-identity (1.12.2 版) 與其相依性 (應用程式範例)
- 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.8.0 版 - 相依性版本:Azure-identity (1.12.2 版),
Msal4j
(1.15.1 版) 及其相依性。 - 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 Server 或 Microsoft OLE DB Driver for SQL Server 安裝 Microsoft Azure Active Directory 驗證程式庫。 JDBC 驅動程式只支援 ADAL.DLL 的 1.0.2028.318 版和更高版本。
您可以取得使用此功能的範例應用程式。