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: Always Encrypted Azure Key Vault 機能のための、JDBC ドライバー バージョン 8.4 以前の場合の Microsoft Azure SDK For Key Vault。 (省略可能)
  • com.azure:azure-identity: JDBC Driver バージョン 9.2 以降の場合の Microsoft Azure Client Library For Identity、または 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 コンパニオン コード。
  • com.google.code.gson:セキュア エンクレーブ機能を使用する Always Encrypted 用の JSON パーサー (省略可能)
  • org.bouncycastle.bcprov-jdk18on: JAVA 8 のみを対象としたセキュア エンクレーブ機能を使用する Always Encrypted 用の Bouncy Castle プロバイダー。 (省略可能)

実行時

前述の機能のいずれかを必要とするプロジェクトでは、使用されているドライバーのバージョンの依存関係と一致する、該当する依存関係を POM ファイルで明示的に宣言する必要があります。

例: JDBC ドライバードライバー バージョン 10.2 以降で Microsoft Entra 認証機能を使用している場合は、ご自身のプロジェクト 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>

例: JDBC Driver バージョン 8.4 以前で Microsoft Entra 認証機能を使用している場合は、ご自身のプロジェクト 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>

例: JDBC Driver バージョン 10.2 以降で Azure Key Vault 機能を使用している場合は、ご自身のプロジェクト 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>

例: JDBC Driver バージョン 8.4 以前で Azure Key Vault 機能を使用している場合は、ご自身のプロジェクト 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>

Note

使用している 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)、およびそれらの依存関係 (サンプル アプリケーション)

Note

ドライバーの 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 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 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 Driver バージョン 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 以外のオペレーティング システムでは、ActiveDirectoryIntegrated 認証を機能させるには、ドライバーで Kerberos チケットが必要です。 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 ドライバー パッケージで利用可能) に加え、Active Directory 統合認証用として、Azure Active Directory 認証ライブラリ (ADAL.DLL) もインストールする必要があります。 Microsoft Azure Active Directory 認証ライブラリは、Microsoft ODBC Driver for SQL Server または Microsoft OLE DB Driver for SQL Server からインストールできます。 JDBC ドライバーでは、ADAL.DLL のバージョン 1.0.2028.318 以降のみがサポートされます。

この機能を使用しているサンプル アプリケーションを取得できます。

関連項目

JDBC Driver GitHub リポジトリ
JDBC Driver API リファレンス