Dependencias de características de Microsoft JDBC Driver para SQL Server
En este artículo se enumeran las bibliotecas en las que se basa el controlador JDBC Driver de Microsoft para SQL Server. El proyecto presenta las siguientes dependencias:
Tiempo de compilación
com.azure:azure-security-keyvault-keys
: biblioteca de cliente de Microsoft Azure para claves de Key Vault para la versión 9.2 del controlador JDBC y posteriores ocom.microsoft.azure:azure-keyvault
: Microsoft Azure SDK para Key Vault para la versión 8.4 del controlador JDBC y anteriores para la característica Always Encrypted Azure Key Vault. (opcional).com.azure:azure-identity
: biblioteca cliente de Microsoft Azure Identity para la versión 9.2 del controlador JDBC y posteriores ocom.microsoft.azure:adal4j
: biblioteca de autenticación de Microsoft Entra para la versión 8.4 del controlador JDBC y anteriores para las características Autenticación con Azure Active Directory y Azure Key Vault. (opcional).com.microsoft.azure:msal4j
: Biblioteca de autenticación de Microsoft (MSAL) para Java. (opcional).org.antlr:antlr4-runtime
: ANTLR 4 Runtime para la característica useFmtOnly. (opcional).org.osgi:org.osgi.core
: biblioteca OSGi Core para la compatibilidad de OSGi Framework.org.osgi:org.osgi.service.jdbc
: código complementario de OSGi para JDBC.com.google.code.gson
: analizador de JSON cliente para la característica Always Encrypted con enclaves seguros. (opcional).org.bouncycastle.bcprov-jdk18on
: proveedor Bouncy Castle para la característica Always Encrypted con enclaves seguros solo para JAVA 8. (opcional).
Tiempo de ejecución
Los proyectos que requieren cualquiera de las características anteriores deben declarar explícitamente las dependencias respectivas en su archivo POM, y deben coincidir con las dependencias de la versión del controlador utilizada.
Por ejemplo: si usas la característica de autenticación de Microsoft Entra con la versión 10.2 del controlador JDBC y posteriores, debes declarar la dependencia azure-identity
en el archivo POM del proyecto. Vea el siguiente fragmento:
<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>
Por ejemplo: si usas la característica de autenticación de Microsoft Entra con la versión 8.4 del controlador JDBC y anteriores, debe declarar las dependencias adal4j
y client-runtimes
en el archivo POM del proyecto. Vea el siguiente fragmento:
<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>
Por ejemplo: si usa la característica Azure Key Vault con la versión 10.2 del controlador JDBC y posteriores, debe declarar las dependencias azure-security-keyvault-keys
y azure-identity
en el archivo POM del proyecto. Vea el siguiente fragmento:
<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>
Por ejemplo: si usa la característica Azure Key Vault con la versión 8.4 del controlador JDBC y anteriores, debe declarar las dependencias azure-keyvault
, adal4j
y client-runtime
en el archivo POM del proyecto. Vea el siguiente fragmento:
<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>
Nota:
Asegúrese de usar la versión del archivo POM que se incluye con la versión del controlador JDBC que está usando. Las dependencias y las versiones pueden haber cambiado.
Si usa Maven para compilar o probar el proyecto, Maven descargará automáticamente las bibliotecas dependientes en el archivo POM junto con sus bibliotecas transitivas. También puede usar el complemento de dependencias de Maven para descargar todas las dependencias del proyecto en la ubicación deseada. Si no usa Maven, tendrá que descargar las dependencias y las dependencias transitivas manualmente para asegurarse de que tenga todas las versiones correctas de cada biblioteca. Una vez que haya descargado las bibliotecas dependientes necesarias, agréguelas a la ruta de clase del proyecto para ejecutar la aplicación.
Requisitos de dependencias para el controlador JDBC
Uso del proveedor de Azure Key Vault
- Versión 12.8.0 del controlador JDBC. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.7.3), Azure-identity (versión 1.12.2) y sus dependencias (aplicación de ejemplo)
- Versión 12.6.0 del controlador JDBC. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.7.3), Azure-identity (versión 1.11.1) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 12.4.0. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.6.1), Azure-identity (versión 1.9.0) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 12.2.0. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.5.3), Azure-identity (versión 1.7.0) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 11.2.0. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.4.1), Azure-identity (versión 1.5.0) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 10.2.0. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.3.6), Azure-identity (versión 1.4.3) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 9.4.1. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.2.8), Azure-identity (versión 1.3.3) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 9.2.1. Versiones de dependencia: Azure-security-keyvault-keys (versión 4.2.1), Azure-identity (versión 1.1.3) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 8.4.1 - Versiones de dependencia: Azure-Keyvault (versión 1.2.4), Adal4j (versión 1.6.5), Client-Runtime-for-AutoRest (1.7.4) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 8.2.2 - Versiones de dependencia: Azure-Keyvault (versión 1.2.2), Adal4j (versión 1.6.4), Client-Runtime-for-AutoRest (1.7.0) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 7.4.1 - Versiones de dependencia: Azure-Keyvault (versión 1.2.1), Adal4j (versión 1.6.4), Client-Runtime-for-AutoRest (1.6.10) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 7.2.2 - versiones de dependencia: Azure-Keyvault (versión 1.2.0), Azure-Keyvault-Webkey (versión 1.2.0), Adal4j (versión 1.6.3), Client-Runtime-for-AutoRest (1.6.5) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 7.0.0 - versiones de dependencia: Azure-Keyvault (versión 1.0.0), Adal4j (versión 1.6.0) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 6.4.0 - versiones de dependencia: Azure-Keyvault (versión 1.0.0), Adal4j (versión 1.4.0) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 6.2.2 - versiones de dependencia: Azure-Keyvault (versión 1.0.0), Adal4j (versión 1.4.0) y sus dependencias (aplicación de ejemplo)
- Versión del controlador JDBC Driver 6.0.0 - versiones de dependencia: Azure-Keyvault (versión 0.9.7), Adal4j (versión 1.3.0) y sus dependencias (aplicación de ejemplo)
Nota:
Con las versiones de controlador 6.2.2 y 6.4.0, la dependencia azure-keyvault-java se ha actualizado a la versión 1.0.0. Sin embargo, la nueva versión no era compatible con la versión anterior (0.9.7) e interrumpe la implementación existente en el controlador. La nueva implementación en el controlador requirió cambios en la API, lo cual a su vez interrumpe los programas cliente que usan el proveedor de Azure Key Vault.
Este problema se resuelve con las versiones más recientes del controlador (de la 7.0.0 en adelante). El constructor quitado que utilizaba el mecanismo de devolución de llamada de autenticación se agrega de nuevo al proveedor de Azure Key Vault para permitir la compatibilidad con versiones anteriores.
Trabajar con la autenticación de Microsoft Entra
- Versión 12.8.0 del controlador JDBC. Versiones de dependencia: Azure-identity (versión 1.12.2),
Msal4j
(versión 1.15.1) y sus dependencias. - Versión 12.6.0 del controlador JDBC. Versiones de dependencia: Azure-identity (versión 1.11.1),
Msal4j
(versión 1.14.1) y sus dependencias. - Versión 12.4.0 del controlador JDBC: versiones de dependencia: Azure-identity (versión 1.9.0),
Msal4j
(versión 1.13.8) y sus dependencias. - Versión 12.2.0 del controlador JDBC: versiones de dependencia: Azure-identity (versión 1.7.0),
Msal4j
(versión 1.13.3) y sus dependencias. - Versión 11.2.0 del controlador JDBC: versiones de dependencia: Azure-identity (versión 1.5.0) y sus dependencias.
- Versión 10.2.0 del controlador JDBC: versiones de dependencia: Azure-identity (versión 1.4.3) y sus dependencias.
- Versión 9.4.1 del controlador JDBC: versiones de dependencia: Azure-identity (versión 1.3.3) y sus dependencias.
- Versión 9.2.1 del controlador JDBC: versiones de dependencia: Azure-identity (versión 1.1.3) y sus dependencias.
- Versión del controlador JDBC Driver 8.4.1: versiones de dependencia:
Adal4j
(versión 1.6.5), Client-Runtime-for-AutoRest (1.7.4) y sus dependencias. - Versión del controlador JDBC Driver 8.2.2: versiones de dependencia:
Adal4j
(versión 1.6.4), Client-Runtime-for-AutoRest (1.7.0) y sus dependencias. En esta versión del controlador, se ha cambiado el nombre desqljdbc_auth.dll
amssql-jdbc_auth-\<version>-\<arch>.dll
. - Versión del controlador JDBC Driver 7.4.1: versiones de dependencia:
Adal4j
(versión 1.6.4), Client-Runtime-for-AutoRest (1.6.10) y sus dependencias. - Versión del controlador JDBC Driver 7.2.2: versiones de dependencia:
Adal4j
(versión 1.6.3), Client-Runtime-for-AutoRest (1.6.5) y sus dependencias. - Versión del controlador JDBC Driver 7.0.0: versiones de dependencia:
Adal4j
(versión 1.6.0) y sus dependencias. - Versión del controlador JDBC Driver 6.4.0: versiones de dependencia:
Adal4j
(versión 1.4.0) y sus dependencias. - Versión del controlador JDBC Driver 6.2.2: versiones de dependencia:
Adal4j
(versión 1.4.0) y sus dependencias. - Versión del controlador JDBC Driver 6.0.0: versiones de dependencia:
Adal4j
(versión 1.3.0) y sus dependencias. En esta versión del controlador, puede conectarse mediante el modo de autenticación de ActiveDirectoryIntegrated, solo en un sistema operativo de Windows, y mediante sqljdbc_auth.dll y la Biblioteca de autenticación de Active Directory para SQL Server (ADALSQL.DLL).
Desde la versión del controlador 6.4.0, las aplicaciones no necesariamente requieren el uso de ADALSQL.DLL en sistemas operativos Windows. En el caso de sistemas operativos que no sean Windows, el controlador requiere un vale de Kerberos para funcionar con la autenticación de ActiveDirectoryIntegrated. Para más información sobre cómo conectarse a Active Directory mediante Kerberos, vea Establecer el vale de Kerberos en Windows, Linux y macOS.
En el caso de sistemas operativos Windows, el controlador busca sqljdbc_auth.dll de forma predeterminada y no requiere la instalación de un vale de Kerberos ni dependencias de la biblioteca de Azure. Si sqljdbc_auth.dll no está disponible, el controlador busca el vale de Kerberos para autenticarse en Active Directory como en otros sistemas operativos.
A partir de la versión 8.2.2 del controlador, se cambia el nombre de sqljdbc_auth.dll
a mssql-jdbc_auth-\<version>-\<arch>.dll
. Por ejemplo, mssql-jdbc_auth-8.2.2.x64.dll
.
Además de mssql-jdbc_auth-<versión>-<arch>.dll (disponible en el paquete de controladores JDBC), la Biblioteca de autenticación de Azure Active Directory (ADAL.DLL) también debe instalarse para la autenticación integrada de Active Directory. La Biblioteca de autenticación de Microsoft Azure Active Directory se puede instalar mediante Microsoft ODBC Driver for SQL Server o Microsoft OLE DB Driver for SQL Server. El controlador JDBC solo admite la versión 1.0.2028.318 y posteriores para ADAL.DLL.
Puede obtener una aplicación de ejemplo que usa esta característica.
Consulte también
JDBC Driver GitHub repository (Repositorio de GitHub del controlador JDBC Driver)
Referencia de API de JDBC Driver