Зависимости компонентов Microsoft JDBC Driver для SQL Server

Скачать драйвер JDBC

В этой статье перечислены библиотеки, от которых зависит Microsoft JDBC Driver для SQL Server. Проект включает в себя следующие зависимости.

Время компиляции

  • com.azure:azure-security-keyvault-keys: клиентская библиотека Microsoft Azure для ключей KeyVault для драйвера JDBC версии 9.2 и выше или com.microsoft.azure:azure-keyvault: пакет SDK Microsoft Azure для Key Vault для драйвера JDBC версии 8.4 и выше функции Always Encrypted Azure Key Vault. (необязательно).
  • com.azure:azure-identity: клиентская библиотека Microsoft Azure для удостоверений для драйвера JDBC версии 9.2 и выше или com.microsoft.azure:adal4j: библиотека проверки подлинности Microsoft Entra для драйвера JDBC версии 8.4 и ниже для функций проверки подлинности Microsoft Entra и Azure Key Vault. (необязательно).
  • com.microsoft.azure:msal4j: библиотека проверки подлинности Майкрософт (MSAL) для Java. (необязательно).
  • org.antlr:antlr4-runtime: среда выполнения ANTLR 4 для использования функцииFmtOnly. (необязательно).
  • org.osgi:org.osgi.core: основная библиотека OSGi для поддержки платформы OSGi.
  • org.osgi:org.osgi.service.jdbc: код компаньона OSGi для JDBC.
  • com.google.code.gson: средство синтаксического анализа JSON для Always Encrypted с функцией безопасных анклавах. (необязательно).
  • org.bouncycastle.bcprov-jdk18on: поставщик Bouncy Castle для функции Always Encrypted с безопасными анклавами (только при использовании JAVA 8). (необязательно).

Время выполнения

В проектах, для которых требуется любая из указанных выше функций, необходимо явно объявить соответствующие зависимости в файле POM, которые соответствуют зависимостям версии используемого драйвера.

Например, если вы используете функцию проверки подлинности Microsoft Entra с драйвером JDBC версии 10.2 и выше, необходимо объявить azure-identity зависимость в файле POM проекта. См. следующий фрагмент кода.

<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 и ниже, необходимо объявить adal4j client-runtimes зависимости в файле POM проекта. См. следующий фрагмент кода.

<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 и выше, необходимо объявить зависимости azure-security-keyvault-keys и azure-identity в файле POM проекта. См. следующий фрагмент кода.

<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 и выше, необходимо объявить зависимости azure-keyvault, adal4j и client-runtime в файле POM проекта. См. следующий фрагмент кода.

<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>

Примечание.

Обязательно используйте версию файла POM, поставляемую с версией драйвера JDBC, которую вы используете. Зависимости и версии могли измениться.

Если вы используете Maven для построения или тестирования проекта, Maven автоматически загрузит зависимые библиотеки, объявленные в файле POM вместе с их транзитивными библиотеками. Вы также можете использовать подключаемый модуль зависимости Maven, чтобы загрузить все зависимости проекта в нужное расположение. Если вы не используете Maven, необходимо загрузить зависимости и транзитивные зависимости вручную и убедиться в наличии правильных версий для каждой библиотеки. После загрузки необходимых зависимых библиотек добавьте их к пути классов проекта, чтобы запустить приложение.

Требования к зависимостям для JDBC Driver

Использование поставщика 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 (версия 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 (версия 1.9.0), Msal4j (версия 1.13.8) и их зависимости.
  • Драйвер JDBC версии 12.2.0— версии зависимостей: Удостоверение Azure (версия 1.7.0), Msal4j (версия 1.13.3) и их зависимости.
  • Драйвер JDBC версии 11.2.0 — версии зависимостей: удостоверение Azure (версия 1.5.0) и их зависимости.
  • Драйвер JDBC версии 10.2.0 — версии зависимостей: удостоверение Azure (версия 1.4.3) и их зависимости.
  • Драйвер JDBC версии 9.4.1— версии зависимостей: Удостоверение Azure (версия 1.3.3) и их зависимости.
  • Драйвер JDBC версии 9.2.1 — версии зависимостей: Удостоверение Azure (версия 1.1.3) и их зависимости.
  • Драйвер JDBC версии 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 версии 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 Driver версии 7.0.0 — версии зависимостей: Adal4j (версия 1.6.0) и ее зависимости
  • JDBC Driver версии 6.4.0 — версии зависимостей: Adal4j (версия 1.4.0) и ее зависимости
  • JDBC Driver версии 6.2.2 — версии зависимостей: Adal4j (версия 1.4.0) и ее зависимости
  • Драйвер JDBC версии 6.0.0 — версии зависимостей: Adal4j (версия 1.3.0) и ее зависимости. В этой версии драйвера можно подключиться с помощью режима проверки подлинности ActiveDirectoryIntegrated , только в операционной системе Windows и с помощью библиотеки проверки подлинности sqljdbc_auth.dll и Active Directory для SQL Server (ADALSQL.DLL).

Начиная с версии драйвера 6.4.0, использование ADALSQL.DLL в операционной системе Windows для приложений не обязательно. Для операционных систем, отличных от Windows, для работы с проверкой подлинности ActiveDirectoryIntegrated драйверу требуется билет Kerberos. Дополнительные сведения о подключении к Active Directory с помощью Kerberos см. в разделе Задать билет Kerberos в Windows, Linux и macOS.

Для операционной системы Windows драйвер по умолчанию ищет файл sqljdbc_auth.dll и не требует установки билетов Kerberos или зависимостей библиотеки Azure. Если файл sqljdbc_auth.dll недоступен, драйвер ищет билет Kerberos для проверки подлинности в Active Directory, как и в других операционных системах.

Начиная с драйвера версии 8.2.2, sqljdbc_auth.dll переименовывается в mssql-jdbc_auth-\<version>-\<arch>.dll. Например, mssql-jdbc_auth-8.2.2.x64.dll.

Для поддержки встроенной проверки подлинности Active Directory нужно установить не только библиотеку mssql-jdbc_auth-<version>-<arch>.dll (доступна в пакете драйверов JDBC), но и Библиотеку проверки подлинности Azure Active Directory (ADAL.DLL). Библиотеку проверки подлинности Microsoft Azure Active Directory можно установить через Microsoft ODBC Driver for SQL Server или Microsoft OLE DB Driver for SQL Server. Для ADAL.DLL драйвер JDBC поддерживает только версию 1.0.2028.318 и выше.

Вы можете получить образец приложения, использующего эту функцию.

См. также

Репозиторий GitHub по JDBC Driver
Справочник интерфейса драйвера JDBC