Featureabhängigkeiten des Microsoft JDBC-Treibers für SQL Server
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 odercom.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), odercom.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ützungorg.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.8.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-security-keyvault-keys (Version 4.7.3), Azure-identity (Version 1.12.2) und die jeweiligen Abhängigkeiten (Beispielanwendung)
- 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.8.0 des JDBC-Treibers – Abhängigkeitsversionen: Azure-identity (Version 1.12.2),
Msal4j
(Version 1.15.1) und die jeweiligen Abhängigkeiten. - 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, wurdesqljdbc_auth.dll
umbenannt inmssql-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
. Beispiel: 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