Dependências de recurso do Microsoft JDBC Driver para SQL Server

Baixar Driver JDBC

Este artigo lista as bibliotecas das quais o Microsoft JDBC Driver para SQL Server depende. O projeto tem as seguintes dependências:

Tempo de compilação

  • com.azure:azure-security-keyvault-keys: Biblioteca de Clientes do Microsoft Azure para Chaves do KeyVault para o driver JDBC versão 9.2 e superior ou com.microsoft.azure:azure-keyvault: SDK do Microsoft Azure para Key Vault para o driver JDBC versão 8.4 e inferior para o recurso Always Encrypted do Azure Key Vault. (opcional)
  • com.azure:azure-identity: Biblioteca de Clientes do Microsoft Azure para Identidade para o JDBC Driver versão 9.2 e superior ou com.microsoft.azure:adal4j: Biblioteca de Autenticação do Microsoft Entra para o JDBC Driver versão 8.4 e inferior para os recursos de Autenticação do Microsoft Entra e do Azure Key Vault. (opcional)
  • com.microsoft.azure:msal4j: MSAL (Microsoft Authentication Library) para Java. (opcional)
  • org.antlr:antlr4-runtime: runtime do ANTLR 4 para o recurso useFmtOnly. (opcional)
  • org.osgi:org.osgi.core: : Biblioteca OSGi Core para suporte ao OSGi Framework.
  • org.osgi:org.osgi.service.jdbc: código complementar OSGi para JDBC.
  • com.google.code.gson: analisador JSON para Always Encrypted com o recurso de enclaves seguros. (opcional)
  • org.bouncycastle.bcprov-jdk18on: o provedor Bouncy Castle para Always Encrypted com o recurso de enclaves seguros para somente JAVA 8. (opcional)

Tempo de execução

Os projetos que exigem qualquer um dos recursos anteriores precisam declarar explicitamente as respectivas dependências no arquivo POM que correspondam às dependências da versão do driver usado.

Por exemplo: se você estiver usando o recurso de Autenticação do Microsoft Entra com o JDBC Driver versão 10.2 e superior, precisará declarar a dependência azure-identity no arquivo POM do seu projeto. Veja o snippet a seguir:

<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 exemplo: se você estiver usando o recurso de Autenticação do Microsoft Entra com o JDBC Driver versão 8.4 e inferior, precisará declarar as dependências adal4j e client-runtimes no arquivo POM do seu projeto. Veja o snippet a seguir:

<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 exemplo: se você estiver usando o recurso do Azure Key Vault com o JDBC Driver versão 10.2 e superior, precisará declarar as dependências azure-security-keyvault-keys e azure-identity no arquivo POM do seu projeto. Veja o snippet a seguir:

<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 exemplo: se você estiver usando o recurso do Azure Key Vault com o JDBC Driver versão 8.4 e inferior, precisará declarar as dependências azure-keyvault, adal4j e client-runtime no arquivo POM do seu projeto. Veja o snippet a seguir:

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

Observação

Certifique-se de usar a versão do arquivo POM que é enviada com a versão do driver JDBC que você está usando. As dependências e as versões podem ter mudado.

Se você estiver usando o Maven para criar ou testar seu projeto, ele baixará automaticamente as bibliotecas dependentes no arquivo POM junto com as bibliotecas transitivas. Você também pode usar o Plug-in de Dependência do Maven para baixar todas as dependências do projeto para um local desejado. Se você não estiver usando o Maven, precisará baixar as dependências e dependências transitivas manualmente para garantir que tenha todas as versões corretas de cada biblioteca. Depois de baixar as bibliotecas dependentes necessárias, adicione-as ao classpath do projeto para executar o aplicativo.

Requisitos de dependência do JDBC Driver

Trabalhando com o provedor do Azure Key Vault

  • Versão 12.6.0 do JDBC Driver – Versões de dependência: Azure-security-keyvault-keys (versão 4.7.3), Azure-identity (versão 1.11.1) e as respectivas dependências (aplicativo de exemplo)
  • Versão 12.4.0 do JDBC Driver – Versões de dependência: Azure-security-keyvault-keys (versão 4.6.1), Azure-identity (versão 1.9.0) e as respectivas dependências (aplicativo de exemplo)
  • Versão 12.2.0 do JDBC Driver – Versões de dependência: Azure-security-keyvault-keys (versão 4.5.3), Azure-identity (versão 1.7.0) e as respectivas dependências (aplicativo de exemplo)
  • Versão 11.2.0 do JDBC Driver – Versões de dependência: Azure-security-keyvault-keys (versão 4.4.1), Azure-identity (versão 1.5.0) e as respectivas dependências (aplicativo de exemplo)
  • Versão 10.2.0 do JDBC Driver – Versões de dependência: Azure-security-keyvault-keys (versão 4.3.6), Azure-identity (versão 1.4.3) e as respectivas dependências (aplicativo de exemplo)
  • Versão 9.4.1 do JDBC Driver – Versões de dependência: Azure-security-keyvault-keys (versão 4.2.8), Azure-identity (versão 1.3.3) e as respectivas dependências (aplicativo de exemplo)
  • Versão 9.2.1 do JDBC Driver – Versões de dependência: Azure-security-keyvault-keys (versão 4.2.1), Azure-identity (versão 1.1.3) e as respectivas dependências (aplicativo de exemplo)
  • Versão 8.4.1 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 1.2.4), Adal4j (versão 1.6.5), Client-Runtime-for-AutoRest (1.7.4) e as respectivas dependências (aplicativo de exemplo)
  • Versão 8.2.2 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 1.2.2), Adal4j (versão 1.6.4), Client-Runtime-for-AutoRest (1.7.0) e as respectivas dependências (aplicativo de exemplo)
  • Versão 7.4.1 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 1.2.1), Adal4j (versão 1.6.4), Client-Runtime-for-AutoRest (1.6.10) e as respectivas dependências (aplicativo de exemplo)
  • Versão 7.2.2 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 1.2.0), Azure-Keyvault-Webkey (versão 1.2.0), o Adal4j (versão 1.6.3), Client-Runtime-for-AutoRest (1.6.5) e as respectivas dependências (aplicativo de exemplo)
  • Versão 7.0.0 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 1.0.0), Adal4j (versão 1.6.0) e as respectivas dependências (aplicativo de exemplo)
  • Versão 6.4.0 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 1.0.0), Adal4j (versão 1.4.0) e as respectivas dependências (aplicativo de exemplo)
  • Versão 6.2.2 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 1.0.0), Adal4j (versão 1.4.0) e as respectivas dependências (aplicativo de exemplo)
  • Versão 6.0.0 do JDBC Driver – Versões de dependência: Azure-Keyvault (versão 0.9.7), Adal4j (versão 1.3.0) e as respectivas dependências (aplicativo de exemplo)

Observação

Nas versões 6.2.2 e 6.4.0 do driver, a dependência azure-keyvault-java foi atualizada para a versão 1.0.0. No entanto, a nova versão não era compatível com a versão anterior (0.9.7) e interrompe a implementação existente no driver. A nova implementação no driver exigiu alterações na API, que, por sua vez, interrompe programas do cliente que usam o Azure Key Vault Provider.

Esse problema foi resolvido na versão mais recente do driver (7.0.0 em diante). O construtor removido que usava o mecanismo de retorno de chamada de autenticação foi novamente adicionado ao Azure Key Vault Provider para oferecer uma compatibilidade com as versões anteriores.

Como trabalhar com a utenticação do Microsoft Entra

  • Versão 12.6.0 do JDBC Driver – Versões de dependência: Azure-identity (versão 1.11.1 Msal4j (versão 1.14.1) e suas respectivas dependências.
  • Versão 12.4.0 do JDBC Driver – Versões de dependência: Azure-identity (versão 1.9.0), Msal4j (versão 1.13.8) e suas respectivas dependências.
  • Versão 12.2.0 do JDBC Driver – Versões de dependência: Azure-identity (versão 1.7.0), Msal4j (versão 1.13.3) e suas respectivas dependências.
  • Versão 11.2.0 do JDBC Driver – Versões de dependência: Azure-identity (versão 1.5.0) e as respectivas dependências.
  • Versão 10.2.0 do JDBC Driver – Versões de dependência: Azure-identity (versão 1.4.3) e as respectivas dependências.
  • Versão 9.4.1 do JDBC Driver – Versões de dependência: Azure-identity (versão 1.3.3) e as respectivas dependências.
  • Versão 9.2.1 do JDBC Driver – Versões de dependência: Azure-identity (versão 1.1.3) e as respectivas dependências.
  • Versão 8.4.1 do JDBC Driver – Versões de dependência: Adal4j (versão 1.6.5), Client-Runtime-for-AutoRest (1.7.4) e as respectivas dependências.
  • Versão 8.2.2 do JDBC Driver – Versões de dependência: Adal4j (versão 1.6.4), Client-Runtime-for-AutoRest (1.7.0) e as respectivas dependências. Nesta versão do driver, sqljdbc_auth.dll foi renomeado para mssql-jdbc_auth-\<version>-\<arch>.dll.
  • Versão 7.4.1 do JDBC Driver – Versões de dependência: Adal4j (versão 1.6.4), Client-Runtime-for-AutoRest (1.6.10) e as respectivas dependências
  • Versão 7.2.2 do JDBC Driver – Versões de dependência: Adal4j (versão 1.6.3), Client-Runtime-for-AutoRest (1.6.5) e as respectivas dependências
  • Versão 7.0.0 do JDBC Driver – Versões de dependência: Adal4j (versão 1.6.0) e as respectivas dependências
  • Versão 6.4.0 do JDBC Driver – Versões de dependência: Adal4j (versão 1.4.0) e as respectivas dependências
  • Versão 6.2.2 do JDBC Driver – Versões de dependência: Adal4j(versão 1.4.0) e as respectivas dependências
  • Versão 6.0.0 do JDBC Driver – Versões de dependência: Adal4j (versão 1.3.0) e as respectivas dependências. Nesta versão do driver, somente é possível se conectar usando o modo de autenticação ActiveDirectoryIntegrated em um sistema operacional Windows, e usando o sqljdbc_auth.dll e a Biblioteca de Autenticação do Active Directory para SQL Server (ADALSQL.DLL).

Da verão 6.4.0 do driver em diante, os aplicativos não exigem necessariamente o uso da ADALSQL.DLL em sistemas operacionais Windows. Nos sistemas operacionais que não são Windows, o driver exige um tíquete Kerberos para funcionar com a autenticação ActiveDirectoryIntegrated. Para saber mais sobre como se conectar ao Active Directory usando o Kerberos, confira o artigo Definir tíquete Kerberos no Windows, Linux e macOS.

Nos sistemas operacionais Windows, o driver busca o sqljdbc_auth.dll por padrão e não exige a instalação do tíquete Kerberos ou das dependências de biblioteca do Azure. Se o sqljdbc_auth.dll não estiver disponível, o driver buscará o tíquete Kerberos para autenticação no Active Directory, assim como em outros sistemas operacionais.

A partir da versão 8.2.2 do driver, sqljdbc_auth.dll é renomeado para mssql-jdbc_auth-\<version>-\<arch>.dll. Por exemplo, mssql-jdbc_auth-8.2.2.x64.dll.

Além do mssql-jdbc_auth-<versão>-<arch>.dll (disponível no pacote do JDBC Driver), a Biblioteca de Autenticação do Azure Active Directory (ADAL.DLL) também precisa ser instalada para a autenticação do Active Directory Integrated. A Biblioteca de Autenticação do Microsoft Azure Active Directory pode ser instalada por meio do Microsoft ODBC Driver for SQL Server ou do Driver do Microsoft OLE DB para SQL Server. O driver JDBC só dá suporte à versão 1.0.2028.318 e posterior para a ADAL.DLL.

Você pode obter um aplicativo de exemplo que usa esse recurso.

Confira também

Repositório GitHub do JDBC Driver
Referência de API do JDBC Driver