Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Microsoft.Data.SqlClient é distribuído independentemente do .NET. Este artigo resume as características significativas, mudanças de comportamento e mudanças de compatibilidade em cada linha de lançamento. As tabelas de lançamento incluem todas as publicações de pacotes estáveis, incluindo cada hotfix e pacote não listado. Para cada atualização de correção e dependência, veja as notas completas de lançamento no repositório SqlClient.
Versões atuais
| Linha de lançamento | Última versão | Data de lançamento | Support |
|---|---|---|---|
| 7.1 | 7.1.0 | Setembro de 2026 | Suporte ao Termo Padrão (STS) |
| 7.0 | 7.0.3 | Setembro de 2026 | Suporte ao Termo Padrão (STS) |
| 6.1 | 6.1.7 | Setembro de 2026 | LTS (suporte de longo prazo) |
Não use versões de pré-visualização em produção. APIs e comportamentos de pré-visualização podem mudar antes da Disponibilidade Geral (GA).
Tabelas de lançamento e resumos de disponibilidade geral utilizam o mês de publicação do NuGet. O artigo sobre o ciclo de vida lista datas oficiais de lançamento, que podem variar. Para períodos de suporte, veja ciclo de vida do suporte ao driver SqlClient.
7.1 STS
A versão 7.1 chegou à disponibilidade geral em setembro de 2026. É a linha STS atual.
Características e mudanças
- Suporte a
SqlBatchno .NET Framework. - Sobrecargas assíncronas
SqlConnection.GetSchemaAsync. - Relatórios de identidade do aplicativo por meio de
SqlConnection.RegisteredApplicatione da versão 2 do conteúdo de TDS USERAGENT. Defina a propriedade antes de abrir a conexão. O valor não faz parte da chave do pool de conexão, portanto, uma conexão física reutilizada informa qual aplicativo a criou originalmente. A identidade da aplicação é telemetria fornecida pelo cliente, não uma base para autorização ou outras decisões de segurança. - Aliases de string de conexão como
ColumnEncryption,ConnectTimeout,FailoverPartner,PacketSize, eWorkstationId. - Mapeamentos de pseudo-colunas de grafo SQL para
$node_id,$edge_id,$from_ide$to_idemSqlBulkCopy. - O tipo
jsondo SQL Server na coleçãoDataTypesretornada porSqlConnection.GetSchema, inclusive no SQL do Azure. - Aceitar aplicação de
Connection Idle Timeoutpor meio deSwitch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior=false. O tempo limite padrão de idle é de 300 segundos;0desativa a expiração do idle. O comportamento padrão de pooling permanece inalterado. - Um modo de aceitação de tempo limite de conexão que inclui o tempo gasto esperando por uma conexão em pool por meio de
Switch.Microsoft.Data.SqlClient.UseOverallConnectTimeoutForPoolWait=true. O interruptor por padrão éfalse. - Suporte ampliado a transações, recuperação de conexão interrompida, aquecimento do pool, poda ociosa, recuperação de conexão vazada e diagnósticos no pool de conexões V2. O pool permanece em avaliação e requer
Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2. - Métodos assíncronos em provedores de armazenamento de chaves Always Encrypted. O driver ainda não chama esses métodos durante a execução do comando, então eles não tornam as operações Always Encrypted existentes assíncronas.
- Pacotes SNI nativos atualizados para 7.1.0. Os alvos de aplicação suportados permanecem o .NET Framework 4.6.2 e versões posteriores, além do .NET 8 e versões posteriores.
Mudanças de compatibilidade
-
SqlConnectionStringBuilder.TransparentNetworkIPResolutionestá obsoleto no .NET Framework. UseMultiSubnetFailoverem seu lugar. Essa mudança adiciona um aviso em tempo de compilação; não altera o comportamento em tempo de execução nem o padrão de nenhuma das opções. -
SqlBatchCommand.CommandBehaviore osCommandBehaviorpassados paraSqlBatch.ExecuteReadersão respeitados. Versões anteriores ignoravam essas configurações. - A opção de conexão obsoleta
Type System Version=SQL Server 2000agora geraArgumentExceptionquando você abre a conexão. Use um valor com suporte, comoLatest.
A versão 7.1 também inclui as correções de validação de certificados e enclaves disponibilizadas nas versões 6.1.7 e 7.0.3. Quando você habilita a validação de certificados no SNI gerenciado, ServerCertificate compara o arquivo de certificado configurado com o certificado apresentado pelo servidor. Um arquivo inválido ou ilegível faz a conexão falhar em vez de burlar a verificação do certificado configurado. O atestado de enclave do VSM (Modo Seguro Virtual) e do HGS (Serviço Guardião de Host) verifica se a chave pública do enclave está vinculada ao relatório de atestado assinado. Reteste esses caminhos ao fazer upgrade de uma versão anterior que não inclui essas correções.
Correções principais
- Corrigidas as conexões agrupadas que permaneciam quebradas após um rollback
TransactionScope, o que poderia causar falha em uma chamada posteriorBeginTransaction(). - Correção dos nomes literais de servidor IPv6 em Pipes Nomeados na SNI gerenciada.
- Fixou os overflows de grandes
decimalparâmetros com precisão e escala explícitas,DateOnlyparâmetros e parâmetros de tabela usandosql_variant, e dados de colunas em fluxo sendo pulados apósIsDBNull(). - Corrigidos os contadores do pool de conexão, a atividade desnecessária do temporizador de manutenção do pool e as regressões de throughput V2 de abertura/fechamento do pool de conexão.
- Correção da lógica de repetição configurável registrando um manipulador permanente de resolução de assembly em todo o processo no .NET moderno. Assemblies de retentativas personalizadas devem estar no diretório base da aplicação; dependências carregadas após a construção do provedor devem ser resolvidas por meio da resolução normal de dependências da aplicação ou por um handler fornecido pela aplicação.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 7.1.0 | Setembro de 2026 | Lançamento em disponibilidade geral, incluindo as mudanças cumulativas do ciclo de pré-visualização do 7.1. |
Importante
Atualize os pacotes complementares referenciados diretamente para a 7.1.0 junto com o driver principal, incluindo Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, e Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Seja Microsoft.Data.SqlClient.Internal.Logging resolvido transitivamente. Assemblies alinhadas mantêm AssemblyVersion 7.0.0.0, então atualizar a partir da 7.0.2 ou 7.0.3 não requer novos redirecionamentos de vinculação do .NET Framework. Quando você atualizar da versão 7.0.0 ou 7.0.1, revise as alterações únicas na versão do assembly descritas nas notas de versão 7.0.2.
A versão 7.1.0 do Azure Key Vault Provider implementa os métodos de provedor de armazenamento de chaves assíncronos e corrige o crescimento de cache e clientes de chave duplicados sob concorrência. Esses métodos assíncronos beneficiam chamadas diretas de provedores. Os caminhos de execução de comandos do driver ainda usam operações síncronas de chave. As versões da extensão do Azure e das abstrações de extensão alinham as versões sem alterações na API pública.
Para o histórico das prévias, veja as notas de lançamento para preview1, preview2 e preview3.
7.0 STS
A versão 7.0 atingiu disponibilidade geral em março de 2026. Ele permanece suportado até 17 de dezembro de 2026, três meses após o lançamento da versão 7.1.
Características e mudanças
- A autenticação Microsoft Entra fornecida pelo driver foi transferida do pacote principal para
Microsoft.Data.SqlClient.Extensions.Azure. Adicione o pacote de extensão quando usar um modo de autenticação doActive Directory. - O pacote principal não depende mais de
Azure.Core,Azure.Identity, ou da Biblioteca do Microsoft Authenticator (MSAL). -
SqlConnection.SspiContextProvidersuporta negociação personalizada de tokens Kerberos e NTLM. A identidade do provedor faz parte da chave do pool de conexão. - Roteamento aprimorado para SQL do Azure Hyperscale e réplicas de leitura nomeadas é negociado automaticamente.
- Eventos de diagnóstico de comando, conexão e transação fortemente tipados estão disponíveis no .NET Framework e no .NET atual.
-
SqlConfigurableRetryFactory.BaselineTransientErrorsexpõe a lista padrão de erros transitórios do driver. -
Active Directory PasswordA autenticação está obsoleta. Use autenticação interativa para aplicações de usuário, autenticação do principal de serviço para serviços ou identidade gerenciada para cargas de trabalho hospedadas no Azure. - O suporte ao destino começa no .NET Framework 4.6.2 e .NET 8. O driver também suporta a construção e execução em .NET 10.
A multiplexação de pacotes para leituras assíncronas permanece como funcionalidade de pré-visualização e é opt-in na versão 7.0. Teste switches de compatibilidade com cargas de trabalho de produção e mantenha um caminho de rollback.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 7.0.0 | Março de 2026 | Versão de disponibilidade geral. |
| 7.0.1 | Abril de 2026 | Corrigidas as consultas de metadados SqlBulkCopy para SQL Server 2016 e Azure Synapse Analytics pools de SQL dedicados, corrigidos os metadados de campos vetoriais, adicionada a dependência ausente do .NET Framework System.Data.Common e adicionado o encaminhamento de tipos para abstrações de autenticação. |
| 7.0.2 | Junho de 2026 | Alinhou o driver central e os pacotes companheiros, endureceu a análise de tokens TDS, corrigiu o tratamento do cache de verificação de assinatura Always Encrypted e corrigiu erros em chamadas de cancelamento e de null-buffer GetBytes e GetChars. |
| 7.0.3 | Setembro de 2026 | SNI atualizado para 6.0.3. Correção do acesso aos metadados SqlBulkCopy, o rastreamento de alocações, a validação de ServerCertificate na SNI gerenciada, a verificação da chave de atestado do enclave do Always Encrypted, os padrões TNIR AccessTokenCallback no .NET Framework, a preservação do estado de autenticação e a resolução configurável de assembly com repetição. Configurações conflitantes de SSPI e autenticação de token agora geram InvalidOperationException. A extensão alinhada do Azure corrige a interpretação da autoridade do Entra para conexões do Dataverse e do Dynamics 365. |
Importante
A partir da 7.0.2, alinhe as referências diretas a Microsoft.Data.SqlClient, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, e Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Seja Microsoft.Data.SqlClient.Internal.Logging resolvido transitivamente. No .NET Framework, as versões de assembly de Extensions.Azure, Internal.Logging e 1.0.0.0 mudaram de 7.0.0.0 para Extensions.Abstractions. Recrie o aplicativo ou adicione redirecionamentos de associação ao atualizar esses pacotes.
6.1 LTS
A versão 6.1.0 foi lançada em julho de 2025, mas depois foi retirada da lista devido a regressões críticas. A versão 6.1.1, lançada em agosto de 2025, estabeleceu a linha 6.1 LTS suportada.
Características e mudanças
- Transporte vetorial nativo do SQL Server 2025 por meio de
SqlVector<T>, inicialmente para vetores de ponto flutuante de precisão simples. - Um recurso de referência .NET Standard 2.0 para compatibilidade com bibliotecas. Este ativo não é uma implementação de runtime. Aplicações executáveis devem usar um ativo de runtime suportado do .NET Framework ou .NET.
- Trabalho de multiplexação de pacotes opt-in para grandes leituras assíncronas e tratamento de endpoints para banco de dados SQL no Microsoft Fabric.
- Suporte aprimorado para compilação nativa Ahead-of-Time (AOT).
- Redução das alocações nos caminhos de processamento de conexão e de TDS.
- A base interna para a extensibilidade da SSPI (Interface do Provedor de Suporte de Segurança) foi adicionada na versão 7.0.
Não implante a versão 6.1.0. A versão 6.1.1 reverteu as alterações afetadas de detecção de pacotes e de reprodução.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 6.1.0 | Julho de 2025 | Versão de disponibilidade geral. Esse pacote foi deslistado devido a regressões críticas. Não a utilize. |
| 6.1.1 | Agosto de 2025 | Reversão da detecção de pacotes parciais, correção e alterações de reprodução da versão 6.1.0. Conjuntos de referência vetorial corrigidos e SqlVector<T>.Null. |
| 6.1.2 | Outubro de 2025 | Correção da inicialização antecipada do contador de desempenho, substituição de provedores de autenticação personalizados e da simultaneidade do pool que impedia o uso do tamanho máximo do pool configurado. |
| 6.1.3 | Novembro de 2025 | Adicionado IgnoreServerProvidedFailoverPartner para Grupos de Disponibilidade Básica e portas personalizadas. Corrigida a inicialização antecipada das métricas EventSource. |
| 6.1.4 | Janeiro de 2026 | Adicionado EnableMultiSubnetFailoverByDefault. Corrigidas SqlDataAdapter falhas de processamento em lote e contagens negativas de conexões ativas em métricas de pool. |
| 6.1.5 | Abril de 2026 | A remoção dos trabalhos desnecessários de SPN (Nome da Entidade de Serviço) e DNS (Sistema de Nomes de Domínio) para autenticação não integrada, fez com que ExecuteScalar propagasse erros de servidor retornados após os dados, e foram corrigidos tipos de metadados vetoriais. |
| 6.1.6 | Junho de 2026 | Adicionou suporte opcional a brokers do Gerenciador de Contas Web do Windows (WAM), reforçou a análise de tokens TDS, corrigiu falhas de assinatura de chaves mestras de coluna em cache e corrigiu a GetCharsvalidação de argumentos. |
| 6.1.7 | Setembro de 2026 | SNI atualizado para 6.0.3. Correção da validação ServerCertificate na SNI gerenciada, verificação da chave de atestado do enclave do Always Encrypted, padrões TNIR AccessTokenCallback no .NET Framework, estado de autenticação de token nas chaves do pool de conexão, validação de certificado pré-logon baseada em retorno de chamada e resolução configurável de assembly com repetição. |
Linhas de lançamento anteriores
As seguintes linhas de lançamento não são mais suportadas. Use os resumos ao planejar uma atualização em várias versões de drivers.
6.0
A versão 6.0 atingiu disponibilidade geral em janeiro de 2025. O patch final foi 6.0.5, lançado em janeiro de 2026.
- Adicionou suporte nativo a SQL Server JSON por meio de
Microsoft.Data.SqlTypes.SqlJson, incluindo caminhos de leitura, escrita, streaming e cópia em massa. - Adicionados payloads diagnósticos públicos e fortemente tipados para eventos de comando, conexão e transação.
- Adicionado
OpenAsync(SqlConnectionOverrides, CancellationToken), incluindoOpenWithoutRetry. - Adicionado suporte a
DateOnlyeTimeOnlyem parâmetros estruturados deDataTableeSqlDataRecord - Adicionado suporte ao .NET 9.
- Removidos os ativos de runtime .NET Standard e .NET 6. Os alvos suportados passaram a ser o .NET Framework 4.6.2 e versões posteriores, além do .NET 8 e versões posteriores.
-
EnableOptimizedParameterBindingrestrito a comandos de texto.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 6.0.0 | Janeiro de 2025 | Versão de disponibilidade geral. Esse pacote está não listado no NuGet, e as anotações upstream não documentam um motivo. |
| 6.0.1 | Janeiro de 2025 | APIs de referência corrigidas SqlClientDiagnostic, avisos sobre TLS em versões anteriores e dependências. |
| 6.0.2 | Abril de 2025 | Correção de possíveis falhas nulas de socket-receive, APIs de referência SqlJson, parâmetros de saída JSON e dependências. |
| 6.0.3 | Outubro de 2025 | Impediu a substituição de provedores de autenticação personalizados e corrigiu a concorrência do pool que subutilizava Max Pool Size. |
| 6.0.4 | Novembro de 2025 | Adicionado Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner para Grupos de Disponibilidade Básica que usam portas TCP personalizadas. |
| 6.0.5 | Janeiro de 2026 | Correção do tratamento de nulo de RPC em lote SqlDataAdapter, adição de Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault e atualização de dependências. |
5.2
A versão 5.2 chegou à disponibilidade geral em fevereiro de 2024. O patch final foi 5.2.3, lançado em abril de 2025.
- Adicionado
SqlConnection.AccessTokenCallbackpara aquisição de tokens assíncrona e compatível com pool. - Adicionados
SqlBatcheSqlBatchCommandno .NET 6 e versões posteriores. - Adicionado suporte
SqlDiagnosticListenerao .NET Standard. - Adicionado 64 bits
SqlBulkCopy.RowsCopied64. A propriedade mais antigaRowsCopiedpermanece um inteiro de 32 bits. - Adicionada
Active Directory Workload Identityautenticação. - Adicionado suporte a .NET 8 e à plataforma big-endian.
- Alteração de
UseOneSecFloorInTimeoutCalculationDuringLoginpara o padrão paratrue. - Usado
NegotiateAuthenticationpara SSPI gerenciado no .NET 7 e versões posteriores.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 5.2.0 | Fevereiro de 2024 | Versão de disponibilidade geral. |
| 5.2.1 | Maio de 2024 | Correção das conexões de instâncias nomeadas do Linux com portas, parâmetros com valor de tabela FireInfoMessageEventOnUserErrors, datatimeoffset(n), OpenAsync atrasado e preservação de AccessTokenCallback por SqlConnection.Clone(). |
| 5.2.2 | Agosto de 2024 | Correções de tempos limite de token, conexões de soquete SNI gerenciado, direcionamento de assembly, novas tentativas de SSPI, leituras de tipos definidos pelo usuário e dados de leitor criptografado. Pacotes de identidade atualizados para CVE-2024-35255. |
| 5.2.3 | Abril de 2025 | Correção de possíveis falhas nulas de socket-receive e inconsistências do assembly de referência, permissão de números de erro transitórios negativos e atualização de dependências. |
5.1
A versão 5.1 atingiu disponibilidade geral em janeiro de 2023. O patch final foi o 5.1.9, lançado em janeiro de 2026.
- Adicionado suporte ao .NET 6 e removido o suporte ao .NET Core 3.1.
- Adicionado suporte a
DateOnlyeTimeOnlypara valores de parâmetros eGetFieldValue. - Adição de TLS 1.3 no .NET e caminhos nativos da SNI (Interface de Rede do SQL Server).
- Adição de
ServerCertificatepara correspondência exata de certificado comEncrypt=MandatoryeEncrypt=Strict. - Adicionado suporte ao Windows ARM64 para o .NET Framework.
- Tornou o
SqlConnectionEncryptOptionparser de strings público. - A versão 5.1.3 corrigiu o caminho de downgrade de criptografia CVE-2024-0056 e a validação da cadeia de certificados.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 5.1.0 | Janeiro de 2023 | Versão de disponibilidade geral. |
| 5.1.1 | Março de 2023 | Correção do relatório de erros do Always Encrypted, transações no modo de redirecionamento, limitação de tokens, as falhas de RPC do TDS em consultas grandes e tratamento de valor nulo GetBytesAsync. |
| 5.1.2 | Outubro de 2023 | Correção das instâncias de usuário do SQL Express, novas tentativas do enclave, LocalDB, valores do construtor da cadeia de conexão, conversão de configuração de SqlConnectionEncryptOption e falhas transitórias de OpenAsync. |
| 5.1.3 | Janeiro de 2024 | Corrigido CVE-2024-0056 e validação da cadeia de certificados. |
| 5.1.4 | Janeiro de 2024 | Corrigido um deadlock de transações distribuídas .NET e atualizado Azure.Identity para CVE-2023-36414. |
| 5.1.5 | Janeiro de 2024 | Limpeza de transações corrigida antes do pooling e falhas de conversão de data e hora do Always Encrypted. Dependências atualizadas do IdentityModel para CVE-2024-21319. |
| 5.1.6 | Agosto de 2024 | Correção de OpenAsync, tempo limite de autenticação e falhas de dados pendentes de leitores criptografados. Dependências de identidade atualizadas para CVE-2024-35255 e instâncias TokenCredential em cache. |
| 5.1.7 | Abril de 2025 | Corrigida uma possível falha nula no recebimento de socket, alinhados os conjuntos de fonte e referência e atualizadas as dependências. |
| 5.1.8 | Novembro de 2025 | Adicionado Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, corrigido o tratamento da marca de ordem de bytes UTF-8 em cópias em massa, modernizada a criação do MSAL e atualizadas as dependências. |
| 5.1.9 | Janeiro de 2026 | Mudei SqlStatistics a temporização para Environment.TickCount e atualizei dependências específicas do framework. |
5.0
A versão 5.0 atingiu a disponibilidade geral em agosto de 2022. O patch final foi a versão 5.0.2, lançada em março de 2023.
- Adicionado TDS 8.0 por meio de
Encrypt=Strict. O modo estrito inicia o TLS antes da troca de login do TDS e sempre valida o certificado do servidor. - Mudou
SqlConnectionStringBuilder.EncryptdeboolparaSqlConnectionEncryptOption. - Migração dos tipos de CLR (Common Language Runtime) do SQL Server para o pacote
Microsoft.SqlServer.Serverversionado separadamente. - Adicionadas opções de conexão
Server SPNeFailover Server SPN. - Adicionado suporte a alias do Windows SQL Server no .NET atual.
- Adicionado
SqlDataSourceEnumeratorno Windows. - Removido o suporte ao .NET Framework 4.6.1.
Importante
A alteração de tipo SqlConnectionStringBuilder.Encrypt representa uma falha de binário. Tipos removidos de Microsoft.Data.SqlClient.Server também exigem alterações no código-fonte para usar Microsoft.SqlServer.Server. Recompile aplicações e bibliotecas, atualize namespaces e verifique conflitos de namespace quando System.Data.SqlClient permanecer referenciado.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 5.0.0 | Agosto de 2022 | Versão de disponibilidade geral. |
| 5.0.1 | Outubro de 2022 | Restauração de HostNameInCertificate no .NET Framework e correção dos deadlocks de atenção, SqlConnectionStringBuilder.Encrypt registro de cancelamento, bloqueios da SNI gerenciada, ordenação UTF-8 e uma falha de domínio de aplicativo da SNI. |
| 5.0.2 | Março de 2023 | Corrigido vazamento de memória de leitura assíncrona, modo TransactionScopede redirecionamento, erros de Always Encrypted, falhas de TDS RPC de grande consulta e bloqueios de transações distribuídas. |
4.1
A versão 4.1 chegou à disponibilidade geral em janeiro de 2022. O patch final foi 4.1.1, lançado em setembro de 2022.
- Adicionado
Attestation Protocol=Nonepara enclaves de Segurança Baseada em Virtualização (VBS). - Solicitações do Protocolo de Resolução do SQL Server paralelizadas no Linux e macOS quando
MultiSubnetFailoverestá habilitado. - Corrigidas as verificações da lista de revogação de certificados durante a autenticação.
- Corrigido a autenticação do Microsoft Entra, valores nulos
SqlBinarye rowversion, e o comportamento de colação do UTF-8.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 4.1.0 | Janeiro de 2022 | Versão de disponibilidade geral. |
| 4.1.1 | Setembro de 2022 | Correção de falhas na lista de revogação de certificados, solicitações paralelizadas do SQL Server Resolution Protocol para MultiSubnetFailover, e corrigidas falhas de autenticação do Microsoft Entra, de rowversion, de UTF-8 e de domínio de aplicativo da SNI. |
4.0
A versão 4.0 entrou em disponibilidade geral em novembro de 2021. O patch final foi 4.0.6, lançado em agosto de 2024.
- Alterou o valor padrão de
Encryptdefalseparatrue. - Adicionado
SqlCommand.EnableOptimizedParameterBindingpara comandos com muitos parâmetros. - Adicionado
SqlFileStreampara Windows através da implementação do .NET Standard. - Adicionado suporte a instâncias compartilhadas de LocalDB no SNI gerenciado.
- Adicionado
GetFieldValue<T>eGetFieldValueAsync<T>paraXmlReader,TextReader, eStream. - Remoção da alternância de segurança da lógica de repetição configurável. O Retry permaneceu desativado até que um aplicativo configurasse um provedor.
- Alteração das falhas de autenticação do Microsoft Entra para lançar
SqlExceptionem vez deAggregateException. - Removido o suporte ao .NET Core 2.1.
- A versão 4.0.5 corrigiu o caminho de downgrade de criptografia CVE-2024-0056 e a validação da cadeia de certificados.
Importante
Como a criptografia usa true como padrão na versão 4.0 e posteriores, uma atualização pode expor incompatibilidades de confiança de certificados ou de nomes de servidor. Não desative a criptografia para contornar esses erros. Instale um certificado de servidor confiável ou configure a validação do certificado para a implantação.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 4.0.0 | Novembro de 2021 | Versão de disponibilidade geral. |
| 4.0.1 | Janeiro de 2022 | Adicionados SuppressInsecureTLSWarning e corrigidos Kerberos .NET 6, nomes de pipes do LocalDB e consultas de enclave concorrentes. |
| 4.0.2 | Setembro de 2022 | Foram corrigidas falhas na lista de revogação de certificados, foram paralelizadas solicitações do SQL Server Resolution Protocol para MultiSubnetFailover, e foram corrigidas falhas de autenticação do Microsoft Entra, de rowversion, de UTF-8, de SNI e de domínio de aplicativo. |
| 4.0.3 | Abril de 2023 | Redução da limitação de tokens de contas em cache e correção das falhas de RPC do TDS em consultas grandes. |
| 4.0.4 | Outubro de 2023 | Correção de novas tentativas assíncronas do enclave, fallback do LocalDB e da SNI gerenciada, versões de arquivos e correlação da atividade de conexão. |
| 4.0.5 | Janeiro de 2024 | Corrigido CVE-2024-0056 e validação da cadeia de certificados. |
| 4.0.6 | Agosto de 2024 | Correção da limpeza de eventos de transação antes do pool e tratamento do tempo limite de ActiveDirectoryAuthenticationProvider.AcquireTokenAsync. |
3.1
A versão 3.1 atingiu disponibilidade geral em março de 2022. O patch final foi 3.1.7, lançado em agosto de 2024.
- Adicionado
Attestation Protocol=Nonepara enclaves VBS. - Adicionados os erros SQL 42108 e 42109 à lista padrão de erros transitórios.
- Adicionado suporte ao Windows ARM64 para .NET Framework na versão 3.1.2.
- Redução das repetidas solicitações de tokens Microsoft Entra por meio da aquisição silenciosa de tokens na versão 3.1.3.
- Corrigido o caminho de downgrade de criptografia CVE-2024-0056 na versão 3.1.5.
- Corrigidos o cleanup de transações antes do pooling e o tratamento de timeout do token Microsoft Entra na 3.1.7.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 3.1.0 | Março de 2022 | Versão de disponibilidade geral. |
| 3.1.1 | Agosto de 2022 | Corrigidos valores nulos de SqlBinary, falhas no Kerberos do .NET 6 e falhas de referência nula na autenticação Microsoft Entra. |
| 3.1.2 | Fevereiro de 2023 | Adicionou suporte ao .NET Framework para Windows ARM64 e corrigiu a segurança de threads de lista de retentativas, bloqueios de transações distribuídas, colação UTF-8 e validação de procedimentos armazenados. |
| 3.1.3 | Março de 2023 | Redução da limitação de tokens do Microsoft Entra com AcquireTokenSilent e correção das falhas de TDS RPC em consultas grandes. |
| 3.1.4 | Outubro de 2023 | Correção de novas tentativas do enclave assíncrono, LocalDB e fallback da SNI gerenciada, versões de arquivos, correlação de atividade de conexão e formatação do EventSource. |
| 3.1.5 | Janeiro de 2024 | Corrigido CVE-2024-0056 e validação da cadeia de certificados. |
| 3.1.6 | Agosto de 2024 | Esse pacote não estava devidamente assinado e não estava listado. Não existe nenhum arquivo de notas de versão upstream. Em vez disso, use a 3.1.7. |
| 3.1.7 | Agosto de 2024 | Correção da limpeza de eventos de transação antes do pool, tempos limite de autenticação, assinatura de assembly e uma falha no domínio de aplicativo da SNI. |
3.0
A versão 3.0 chegou à disponibilidade geral em junho de 2021. O patch final foi 3.0.1, lançado em setembro de 2021.
- Adicionada lógica de retentativa configurável para operações de conexão e comando. Na versão 3.0, permaneceu como opção de aceitação, condicionado a
Switch.Microsoft.Data.SqlClient.EnableRetryLogic. - Adicionados EventCounters para conexão e atividade do pool.
- Adicionada
Active Directory Defaultautenticação por meio deAzure.Identity. - Adicionou o registro de provedor de armazenamento de chaves Always Encrypted com escopo de conexão e comando.
- Preferência de endereço IP TCP adicionada.
- Alterada a autenticação de identidade gerenciada atribuída pelo usuário para usar o ID do cliente em vez do ID do objeto em
User Id. - Alteração dos valores nulos rowversion de SQL para retornar
DBNullem vez de uma matriz de bytes vazia. Um switch AppContext preservou o comportamento antigo. - Elevei a versão mínima de destino do .NET Framework de 4.6 para 4.6.1.
Provedores de armazenamento de chaves do sistema têm precedência sobre provedores registrados em uma conexão ou comando a partir da versão 3.0. Renomeie um provedor personalizado se seu nome conflitar com o de um provedor embutido.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 3.0.0 | Junho de 2021 | Versão de disponibilidade geral. |
| 3.0.1 | Setembro de 2021 | Correção das aberturas de conexão do Microsoft Entra com bloqueio, estado de promoção de transação, criptografia necessária, recursão de repetição e deadlocks, e conexões inutilizáveis. |
2.1
A versão 2.1 chegou à disponibilidade geral em novembro de 2020. O patch final foi 2.1.7, lançado em janeiro de 2024.
- Estendemos o Always Encrypted para as plataformas .NET Standard 2.0 compatíveis.
- Adicionou suporte a enclave seguro no Unix para .NET Core e em plataformas .NET Standard 2.1.
- Adição de
Active Directory Device Code Flowe gerenciei a autenticação de identidade gerenciada. - Foram adicionados ganchos de personalização para autenticação interativa e de código de dispositivo.
- Adição de metadados de classificação de confidencialidade.
- Adicionado
SqlConnection.ServerProcessId. - Adicionada a
Command Timeoutopção de conexão como padrão para comandos criados por uma conexão. - A versão 2.1.7 corrigiu o caminho de downgrade de criptografia CVE-2024-0056.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 2.1.0 | Novembro de 2020 | Versão de disponibilidade geral. |
| 2.1.1 | Dezembro de 2020 | Corrigida a identidade gerenciada atribuída pelo sistema em Azure Functions, Unix Kerberos e TCP keep-alive. |
| 2.1.2 | Março de 2021 | Instâncias nomeadas Unix corrigidas, resultados errados com timeout, processamento DTD inseguro, SPNs Kerberos, dependências de cache ausentes, rastreamento e cabeçalhos MARS. |
| 2.1.3 | Maio de 2021 | Evitou corrupção dos dados de transações com conjuntos de resultados abertos e corrigiu uma condição de corrida entre SinglePhaseCommit e TransactionEnded. |
| 2.1.4 | Setembro de 2021 | Garantiu que as conexões falhem quando a criptografia é necessária e corrigiu conexões que entravam em um estado inutilizável. |
| 2.1.5 | Agosto de 2022 | Adição de validação do comprimento do CommandText do procedimento armazenado e correção da autenticação Kerberos do .NET 6 e SqlTypeWorkarounds. |
| 2.1.6 | Abril de 2023 | Correção de falhas de RPC de TDS em consultas grandes em SqlCommand.ExecuteReaderAsync, conflitos padrão de colação UTF-8 e deadlocks de envio de atenção. |
| 2.1.7 | Janeiro de 2024 | Corrigido CVE-2024-0056 e validação da cadeia de certificados. |
2.0
A versão 2.0 chegou à disponibilidade geral em junho de 2020. A versão final do patch foi 2.0.1, lançada em agosto de 2020.
- Adicionada a autenticação
Active Directory InteractiveeActive Directory Integratedno .NET Core e no .NET Standard. - Adicionada
Active Directory Service Principalautenticação. - Adicionado
Microsoft.Data.SqlClient.EventSourcerastreamento. - Adicionado suporte multiplataforma a TCP keep-alive e uma implementação de rede gerenciada opt-in no Windows para testes e depuração. O caminho gerenciado não suportava autenticação do Windows que não seja de domínio.
- Adição de
SqlBulkCopy.RowsCopiede solicitação de dicas de cópia em massa. - Adicionado
SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry). - Adicionei suporte a Windows ARM através da
Microsoft.Data.SqlClient.SNI.runtimedependência. - Começou a validar o certificado do servidor quando um servidor força a criptografia, inclusive quando a cadeia de conexão define
Encrypt=false. As conexões podem falhar após essa atualização se o certificado não for confiável ou se seu nome não corresponder ao servidor. - Alterado o tratamento da escala de parâmetros decimais para usar arredondamento compatível com SQL Server.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 2.0.0 | Junho de 2020 | Versão de disponibilidade geral. |
| 2.0.1 | Agosto de 2020 | Adicionada configuração de autenticação amigável à coexistência e corrigido o vencimento de tokens em pool, tratamento de falhas transitórias, cache de enclave e erros nativos de SNI pré-login. |
1.1
A versão 1.1 chegou à disponibilidade geral em novembro de 2019. O patch final foi a 1.1.4, lançada em março de 2021.
- Adicionado Always Encrypted com enclaves seguros nos alvos suportados do Framework .NET e do .NET Core.
- Adicionada expansão
|DataDirectory|emAttachDBFilenameno .NET Core. - Leituras assíncronas aprimoradas com cache multipacote de buffer de destino.
- Redução da sobrecarga de snapshots em
TdsParserStateObjecteSqlDataReader. - Erros de cabeçalho de estado de timeout e de Múltiplos Conjuntos de Resultados Ativos (MARS) corrigidos em patches posteriores.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 1.1.0 | Novembro de 2019 | Versão de disponibilidade geral. |
| 1.1.1 | Fevereiro de 2020 | Revertidas mudanças assíncronas SNIPacket que causavam deadlocks e corrigida a faixa de dependência do SNI. |
| 1.1.2 | Abril de 2020 | Adicionados nomes de usuário para Active Directory Interactive authentication e corrigida a persistência de senha e os cabeçalhos MARS TDS. |
| 1.1.3 | Maio de 2020 | Impedimento de transações abortadas a partir da inscrição de conexões em pool e reversão da correção regressiva do cabeçalho de MARS. |
| 1.1.4 | Março de 2021 | Resultados incorretos do estado de timeout e erros de cabeçalho MARS corrigidos no .NET Framework 4.8 e versões posteriores. |
1.0
Microsoft. Data.SqlClient 1.0 atingiu disponibilidade geral em agosto de 2019. O patch final foi 1.0.19269.1, lançado em setembro de 2019.
- Introdução do provedor
Microsoft.Data.SqlClientfornecido separadamente. - Suporta o .NET Framework 4.6 e versões posteriores, .NET Core 2.1 e versões posteriores e o .NET Standard 2.0.
- Adicionada
Active Directory Interactiveautenticação no .NET Framework. - Adicionada
Active Directory Passwordautenticação no .NET Core. - Metadados de classificação de sensibilidade de dados adicionados em
SqlDataReader. - Adicionado suporte à ordenação UTF-8 do SQL Server 2019.
- Adicionado suporte a Always Encrypted no .NET Core.
Lançamentos
| Versão | Lançado | Mudanças relevantes para o cliente |
|---|---|---|
| 1.0.19239.1 | Agosto de 2019 | Versão de disponibilidade geral. Corrigida a reutilização de conexão após falhas de transação, publicação SNI, tratamento invariante à globalização e expansão de nulos na cópia em massa. |
| 1.0.19249.1 | Setembro de 2019 | Corrigidas grandes leituras de dados multipacote no Unix. |
| 1.0.19269.1 | Setembro de 2019 | Restaurado SqlCommand.StatementCompleted, adicionada a SqlConnectionStringBuilder.Authentication ausente e revertida uma alteração incompatível na API SqlAuthenticationParameters.Resource. |
Para uma aplicação migrando do provedor antigo, use Migrar do System.Data.SqlClient para Microsoft.Data.SqlClient em vez de ler apenas as notas de versão.
Notas opcionais de lançamento do pacote
Pacotes opcionais têm suas próprias notas de lançamento. A partir da versão 7.0.2, eles são enviados alinhado à versão com o driver principal.
| Package | Notas de lançamento |
|---|---|
Microsoft.Data.SqlClient.Extensions.Azure |
Notas de lançamento da extensão Azure |
Microsoft.Data.SqlClient.Extensions.Abstractions |
Notas de lançamento de abstrações de extensões |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Notas de versão do Azure Key Vault Provider |
Não faça referência a Microsoft.Data.SqlClient.Internal.Logging diretamente. É uma dependência interna compartilhada pelos pacotes de drivers.
Avalie uma atualização
- Identifique cada driver e cada versão de pacote opcional usados direta ou transitivamente.
- Leia as notas de lançamento de todas as versões secundárias e principais abrangidas pela atualização.
- Verifique o ciclo de vida do suporte ao driver SqlClient para compatibilidade com o framework alvo e banco de dados.
- Atualize todos os pacotes relacionados para versões compatíveis.
- Construa e teste a autenticação da aplicação, criptografia, pooling de conexões, parâmetros, transações, novas tentativas, diagnósticos e saída de implantação.
Para ver comandos de instalação e implantação, consulte Instalar, atualizar e implantar Microsoft.Data.SqlClient.