Featureabhängigkeiten des Microsoft JDBC-Treibers für SQL Server

JDBC-Treiber herunterladen

In diesem Artikel werden die Bibliotheken aufgeführt, von denen der Microsoft JDBC-Treiber für SQL Server abhängig ist. Für das Projekt gelten die folgenden Abhängigkeiten:

Kompilierzeit

  • com.azure:azure-security-keyvault-keys: Microsoft Azure-Clientbibliothek für KeyVault-Schlüssel für Version 9.2 und höher des JDBC-Treibers oder com.microsoft.azure:azure-keyvault: Microsoft Azure SDK für Key Vault für Version 8.4 und früher des JDBC-Treibers für das Azure Key Vault-Feature Always Encrypted. (Optional)
  • com.azure:azure-identity: Microsoft Azure-Clientbibliothek für die Identität des JDBC-Treibers (Version 9.2 oder höher), oder com.microsoft.azure:adal4j: Microsoft Entra-Authentifizierungsbibliothek für JDBC-Treiber (Version 8.4 oder früher) für Microsoft Entra-Authentifizierungsfeatures und das Azure Key Vault-Feature. (Optional)
  • com.microsoft.azure:msal4j: Microsoft Authentication Library (MSAL) für Java (Optional)
  • org.antlr:antlr4-runtime: ANTLR 4 Runtime für das useFmtOnly-Feature (Optional)
  • org.osgi:org.osgi.core: OSGi Core-Bibliothek für OSGi-Framework-Unterstützung
  • org.osgi:org.osgi.service.jdbc: OSGi-Begleitcode für BENCHMARKING.
  • com.google.code.gson: JSON-Parser für Always Encrypted mit Secure Enclaves-Feature (Optional)
  • org.bouncycastle.bcprov-jdk18on: Bouncy Castle-Anbieter für Always Encrypted mit dem Feature für sichere Enklaven bei ausschließlicher Verwendung von Java 8 (Optional)

Laufzeit

Für Projekte, die eines der vorangehenden Features erfordern, müssen die jeweiligen Abhängigkeiten explizit in der zugehörigen POM-Datei deklariert werden, die den Abhängigkeiten der Version des verwendeten Treibers entsprechen.

Beispiel: Wenn Sie das Microsoft Entra-Authentifizierungsfeature mit dem JDBC-Treiber (Version 10.2 oder höher) verwenden, müssen Sie in der POM-Datei Ihres Projekts die azure-identity-Abhängigkeit deklarieren. Dies ist im folgenden Codeausschnitt dargestellt:

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

Beispiel: Wenn Sie das Microsoft Entra-Authentifizierungsfeature mit dem JDBC-Treiber (Version 8.4 oder früher) verwenden, müssen Sie in der POM-Datei Ihres Projekts die adal4j-Abhängigkeit und die client-runtimes-Abhängigkeit deklarieren. Dies ist im folgenden Codeausschnitt dargestellt:

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

Beispiel: Wenn Sie das Azure Key Vault-Feature mit dem JDBC-Treiber (Version 10.2 oder höher) verwenden, müssen Sie in der POM-Datei Ihres Projekts die azure-security-keyvault-keys-Abhängigkeit und die azure-identity-Abhängigkeit deklarieren. Dies ist im folgenden Codeausschnitt dargestellt:

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

Beispiel: Wenn Sie das Azure Key Vault-Feature mit dem JDBC-Treiber (Version 8.4 oder früher) verwenden, müssen Sie in der POM-Datei Ihres Projekts die azure-keyvault-Abhängigkeit, die adal4j-Abhängigkeit und die client-runtime-Abhängigkeit deklarieren. Dies ist im folgenden Codeausschnitt dargestellt:

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

Hinweis

Stellen Sie sicher, dass Sie die Version der POM-Datei verwenden, die mit der Version des verwendeten JDBC-Treibers geliefert wird. Die Abhängigkeiten und Versionen haben sich möglicherweise geändert.

Wenn Sie Maven zum Erstellen oder Testen Ihres Projekts verwenden, werden abhängige Bibliotheken in der POM-Datei automatisch zusammen mit den transitiven Bibliotheken heruntergeladen. Sie können auch das Maven-Plug-In für Abhängigkeiten verwenden, um alle Projektabhängigkeiten an einen gewünschten Speicherort herunterzuladen. Wenn Sie Maven nicht verwenden, müssen Sie Abhängigkeiten und transitive Abhängigkeiten manuell herunterladen und sicherstellen, dass Sie über die richtigen Versionen jeder Bibliothek verfügen. Nachdem Sie die erforderlichen abhängigen Bibliotheken heruntergeladen haben, fügen Sie sie Ihrem Projektklassenpfad hinzu, um Ihre Anwendung auszuführen.

Abhängigkeitsanforderungen für den JDBC-Treiber

Arbeiten mit dem Azure Key Vault-Anbieter

  • Version 12.6.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.7.3), Azure-identity (Version 1.11.1) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • Version 12.4.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.6.1), Azure-identity (Version 1.9.0) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • Version 12.2.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.5.3), Azure-identity (Version 1.7.0) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • Version 11.2.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.4.1), Azure-identity (Version 1.5.0) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • Version 10.2.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.3.6), Azure-identity (Version 1.4.3) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • Version 9.4.1 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.2.8), Azure-identity (Version 1.3.3) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • Version 9.2.1 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.2.1), Azure-identity (Version 1.1.3) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber (Version 8.4.1) – Abhängigkeitsversionen: Azure-Keyvault (Version 1.2.4), Adal4j (Version 1.6.5), Client-Runtime-for-AutoRest (Version 1.7.4) und ihre jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber (Version 8.2.2) – Abhängigkeitsversionen: Azure-Keyvault (Version 1.2.2), Adal4j (Version 1.6.4), Client-Runtime-for-AutoRest (Version 1.7.0) und ihre jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber (Version 7.4.1) – Abhängigkeitsversionen: Azure-Keyvault (Version 1.2.1), Adal4j (Version 1.6.4), Client-Runtime-for-AutoRest (Version 1.6.10) und ihre jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber, Version 7.2.2 – Abhängigkeitsversionen: Azure-Keyvault (Version 1.2.0), Azure-Keyvault-Webkey (Version 1.2.0), Adal4j (Version 1.6.3), Client-Runtime-for-AutoRest (1.6.5) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber, Version 7.0.0 – Abhängigkeitsversionen: Azure-Keyvault (Version 1.0.0), Adal4j (Version 1.6.0) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber, Version 6.4.0 – Abhängigkeitsversionen: Azure-Keyvault (Version 1.0.0), Adal4j (Version 1.4.0) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber, Version 6.2.2 – Abhängigkeitsversionen: Azure-Keyvault (Version 1.0.0), Adal4j (Version 1.4.0) und die jeweiligen Abhängigkeiten (Beispielanwendung)
  • JDBC-Treiber, Version 6.0.0 – Abhängigkeitsversionen: Azure-Keyvault (Version 0.9.7), Adal4j (Version 1.3.0) und die jeweiligen Abhängigkeiten (Beispielanwendung)

Hinweis

Bei den Treiberversionen 6.2.2 und 6.4.0 wurde die Azure-Keyvault-Java-Abhängigkeit auf Version 1.0.0 aktualisiert. Die neue Version war jedoch nicht mit der vorherigen Version (0.9.7) kompatibel und unterbricht die vorhandene Implementierung im Treiber. Die neue Implementierung im Treiber erforderte API-Änderungen, wodurch wiederum Clientprogramme unterbrochen werden, die den Azure Key Vault-Anbieter verwenden.

Dieses Problem wurde in den neuesten Treiberversionen (ab 7.0.0) behoben. Der entfernte Konstruktor, der den Authentifizierungsrückrufmechanismus verwendet hat, wird aus Gründen der Abwärtskompatibilität wieder zum Azure Key Vault-Anbieter hinzugefügt.

Verwendung der Microsoft Entra-Authentifizierung

  • Version 12.6.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.11.1), Msal4j (Version 1.14.1) und die jeweiligen Abhängigkeiten.
  • Version 12.4.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.9.0), Msal4j (Version 1.13.8) und die jeweiligen Abhängigkeiten.
  • Version 12.2.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.7.0), Msal4j (Version 1.13.3) und die jeweiligen Abhängigkeiten.
  • Version 11.2.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.5.0) und die dazugehörigen Abhängigkeiten.
  • Version 10.2.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.4.3) und die dazugehörigen Abhängigkeiten.
  • Version 9.4.1 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.3.3) und die dazugehörigen Abhängigkeiten.
  • Version 9.2.1 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.1.3) und die dazugehörigen Abhängigkeiten.
  • JDBC-Treiber, Version 8.4.1 – Abhängigkeitsversionen: Adal4j (Version 1.6.5), Client-Runtime-for-AutoRest (1.7.4) und die jeweiligen Abhängigkeiten.
  • JDBC-Treiber, Version 8.2.2 – Abhängigkeitsversionen: Adal4j (Version 1.6.4), Client-Runtime-for-AutoRest (1.7.0) und die jeweiligen Abhängigkeiten. In dieser Version des Treibers, wurde sqljdbc_auth.dll umbenannt in mssql-jdbc_auth-\<version>-\<arch>.dll.
  • JDBC-Treiber, Version 7.4.1 – Abhängigkeitsversionen: Adal4j (Version 1.6.4), Client-Runtime-for-AutoRest (1.6.10) und die jeweiligen Abhängigkeiten
  • JDBC-Treiber, Version 7.2.2 – Abhängigkeitsversionen: Adal4j (Version 1.6.3), Client-Runtime-for-AutoRest (1.6.5) und die jeweiligen Abhängigkeiten
  • JDBC-Treiber, Version 7.0.0 – Abhängigkeitsversionen: Adal4j (Version 1.6.0) und ihre Abhängigkeiten
  • JDBC-Treiber, Version 6.4.0 – Abhängigkeitsversionen: Adal4j (Version 1.4.0) und ihre Abhängigkeiten
  • JDBC-Treiber, Version 6.2.2 – Abhängigkeitsversionen: Adal4j (Version 1.4.0) und ihre Abhängigkeiten
  • JDBC-Treiber, Version 6.0.0 – Abhängigkeitsversionen: Adal4j (Version 1.3.0) und ihre Abhängigkeiten. In dieser Treiberversion können Sie unter Verwendung des ActiveDirectoryIntegrated-Authentifizierungsmodus nur unter einem Windows-Betriebssystem und mit „sqljdbc_auth.dll“ und der Active Directory-Authentifizierungsbibliothek für SQL Server (ADALSQL.DLL) eine Verbindung herstellen.

Ab Treiberversion 6.4.0 müssen Anwendungen nicht zwangsläufig ADALSQL.DLL unter Windows-Betriebssystemen verwenden. Bei Nicht-Windows-Betriebssystemen benötigt der Treiber zum Arbeiten mit der ActiveDirectoryIntegrated-Authentifizierung ein Kerberos-Ticket. Weitere Informationen zum Herstellen einer Verbindung mit Active Directory mithilfe von Kerberos finden Sie unter Festlegen eines Kerberos-Tickets unter Windows, Linux und macOS.

Bei Windows-Betriebssystemen sucht der Treiber standardmäßig nach „sqljdbc_auth.dll“ und erfordert keine Kerberos-Ticketeinrichtung oder Azure-Bibliotheksabhängigkeiten. Wenn „sqljdbc_auth.dll“ nicht verfügbar ist, sucht der Treiber (wie unter anderen Betriebssystemen) nach dem Kerberos-Ticket für die Authentifizierung bei Active Directory.

Ab Treiberversion 8.2.2, wird sqljdbc_auth.dll umbenannt in mssql-jdbc_auth-\<version>-\<arch>.dll. Beispielsweise mssql-jdbc_auth-8.2.2.x64.dll.

Zusätzlich zur Datei mssql-jdbc_auth-<><>.dll (verfügbar im JDBC-Treiberpaket) muss für die integrierte Active Directory-Authentifizierung auch die Azure Active Directory-Authentifizierungsbibliothek (ADAL.DLL) installiert werden. Die Microsoft Azure Active Directory-Authentifizierungsbibliothek kann über den Microsoft ODBC Driver for SQL Server oder den Microsoft OLE DB-Treiber für SQL Server installiert werden. Der JDBC-Treiber unterstützt nur Version 1.0.2028.318 und höher für ADAL.DLL.

Hier finden Sie eine Beispielanwendung, die dieses Feature verwendet.

Weitere Informationen

JDBC Driver GitHub repository (GitHub-Repository für den JDBC-Treiber)
JDBC-Treiber-API-Referenz