Microsoft JDBC Driver for SQL Server 的功能依赖项
本文列出了 Microsoft JDBC Driver for SQL Server 所依赖的库。 项目具有以下依赖项:
编译时间
com.azure:azure-security-keyvault-keys
:Microsoft Azure Client Library For KeyVault Keys for JDBC 驱动程序版本 9.2 及更高版本或com.microsoft.azure:azure-keyvault
:Microsoft Azure SDK For Key Vault for JDBC 驱动程序版本 8.4 及更低版本,用于 Always Encrypted Azure 密钥保管库功能。 (可选)com.azure:azure-identity
:Microsoft Azure Client Library For Identity for JDBC 驱动程序版本 9.2(及更高版本)或com.microsoft.azure:adal4j
:Microsoft Entra Authentication Library for JDBC 驱动程序版本 8.4 及更低版本,用于 Microsoft Entra 身份验证功能和 Azure Key Vault 功能。 (可选)com.microsoft.azure:msal4j
:适用于 Java 的 Microsoft 身份验证库 (MSAL)。 (可选)org.antlr:antlr4-runtime
设置用户帐户 :具有 useFmtOnly 功能的 ANTLR 4 Runtime。 (可选)org.osgi:org.osgi.core
:具有 OSGi Framework 支持的 OSGi Core 库。org.osgi:org.osgi.service.jdbc
:JDBC 的 OSGi Companion Code。com.google.code.gson
:具有安全 Enclave 功能的 Always Encrypted 的 JSON 分析器。 (可选)org.bouncycastle.bcprov-jdk18on
:具有安全 Enclave 功能的 Always Encrypted 的 Bouncy Castle 提供程序(仅适用于 JAVA 8)。 (可选)
运行时
需要任何上述功能的项目都必须在其 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 提供程序的客户端程序。
最新驱动程序版本(7.0.0 以后)可解决此问题。 使用了身份验证回调机制的已删除构造函数将重新添加到 Azure Key Vault 提供程序以进行向后兼容。
使用 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 Driver 版本 8.4.1 - 依赖项版本:
Adal4j
(版本 1.6.5)、Client-Runtime-for-AutoRest (1.7.4) 及其依赖项。 - JDBC Driver 版本 8.2.2 - 依赖项版本:
Adal4j
(版本 1.6.4)、Client-Runtime-for-AutoRest (1.7.0) 及其依赖项。 在此版本的驱动程序中,sqljdbc_auth.dll
已重命名为mssql-jdbc_auth-\<version>-\<arch>.dll
。 - JDBC Driver 版本 7.4.1 - 依赖项版本:
Adal4j
(版本 1.6.4)、Client-Runtime-for-AutoRest (1.6.10) 及其依赖项 - JDBC Driver 版本 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
。
除了 mssql-jdbc_auth-<version>-<arch>.dll(在 JDBC 驱动程序包中提供)之外,还必须安装 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 及更高版本 。
可以获取使用此功能的示例应用程序。