Microsoft JDBC Driver for SQL Server 的功能依赖项

下载 JDBC 驱动程序

本文列出了 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 文件中声明 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 提供程序的客户端程序。

最新驱动程序版本(7.0.0 以后)可解决此问题。 使用了身份验证回调机制的已删除构造函数将重新添加到 Azure Key Vault 提供程序以进行向后兼容。

使用 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 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 ServerMicrosoft OLE DB Driver for SQL Server 安装 Microsoft Azure Active Directory 身份验证库。 JDBC 驱动程序仅支持 ADAL.Dll 版本 1.0.2028.318 及更高版本 。

可以获取使用此功能的示例应用程序

另请参阅

JDBC 驱动程序 GitHub 存储库
JDBC Driver API 参考