Novidades na Microsoft. Data.SqlClient

Microsoft. Data.SqlClient é fornecido de forma independente do .NET. Este artigo resume as funcionalidades significativas, alterações de comportamento e alterações de compatibilidade em cada linha de lançamento. As tabelas de lançamento incluem a publicação de todos os pacotes estáveis, incluindo cada hotfix e cada pacote não listado. Para cada correção e atualização de dependências, consulte as notas de versão completas no repositório SqlClient.

Versões atuais

Linha de lançamento Versão mais recente Data de lançamento Support
7.0 7.0.3 Setembro de 2026 Apoio Temporário Padrão (STS)
6.1 6.1.7 Setembro de 2026 Suporte de Longo Prazo (LTS)
7.1 Pré-visualização 7.1.0-preview3.26238.4 Agosto de 2026 Preview

Não uses versões de pré-visualização em produção. As APIs e o comportamento das pré-visualizações podem mudar antes da Disponibilidade Geral (GA).

Tabelas de lançamentos 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 janelas de suporte, consulte o ciclo de vida do suporte ao driver SqlClient.

7.1 Pré-visualização

A versão preliminar 7.1 alarga as APIs de processamento em lote, descoberta de esquemas, agrupamento de ligações e Always Encrypted. As alterações até à 7.1.0-preview3 incluem:

  • SqlBatchsuporte no .NET Framework.
  • Sobrecargas assíncronas SqlConnection.GetSchemaAsync .
  • Aliases de cadeias de ligação como ColumnEncryption, ConnectTimeout, FailoverPartner, PacketSize, e WorkstationId.
  • Mapeamentos de pseudocolunas do SQL Graph para $node_id, $edge_id, $from_id e $to_id em SqlBulkCopy.
  • Aplicação opcional do limite de tempo de inatividade da ligação.
  • Um modo opcional de tempo limite da ligação que inclui o tempo de espera por uma ligação do conjunto.
  • Desenvolvimento adicional do pool experimental de ligação baseado em canais.
  • Métodos assíncronos nos fornecedores do repositório de chaves Always Encrypted. O driver ainda não chama estes métodos durante a execução do comando, por isso não tornam as operações Always Encrypted existentes assíncronas.

SqlBatchCommand.CommandBehavior é homenageado a partir desta linha. As versões anteriores ignoravam a propriedade. A opção de ligação obsoleta Type System Version=SQL Server 2000 agora gera uma ArgumentException.

O Preview3 também altera a validação do certificado e do enclave. ServerCertificate Compara sempre o ficheiro de certificado configurado com o certificado apresentado pelo servidor. Um ficheiro inválido ou ilegível falha agora a ligação em vez de recorrer à validação do nome do host. A atestação de enclave do Virtual Secure Mode (VSM) e do Host Guardian Service (HGS) verifica agora que a chave pública do enclave está associada ao relatório de atestação assinado. Teste novamente estes caminhos ao passar de uma versão preliminar anterior.

Leia as notas de lançamento para o preview1, preview2 e preview3 antes de testar esta linha.

7.0 STS

A versão 7.0 chegou à disponibilidade geral em março de 2026. É a linha STS atual.

Características e alterações

  • A autenticação Microsoft Entra fornecida pelo controlador foi transferida do pacote principal para Microsoft.Data.SqlClient.Extensions.Azure. Adicione o pacote de extensão quando utiliza um modo de autenticação Active Directory.
  • O pacote principal já não depende de Azure.Core, Azure.Identity, ou da Biblioteca de Autenticação da Microsoft (MSAL).
  • SqlConnection.SspiContextProvider suporta negociação personalizada de tokens Kerberos e NTLM. A identidade do fornecedor faz parte da chave do pool de ligação.
  • O encaminhamento avançado para o SQL do Azure Hyperscale e para réplicas de leitura nomeadas é negociado automaticamente.
  • Estão disponíveis eventos de diagnóstico fortemente tipificados de comandos, ligações e transações no .NET Framework e no .NET atual.
  • SqlConfigurableRetryFactory.BaselineTransientErrors expõe a lista predefinida de erros transitórios do controlador.
  • Active Directory Password A autenticação está obsoleta. Use autenticação interativa para aplicações de utilizador, autenticação do principal de serviço para serviços ou identidade gerida para cargas de trabalho alojadas no Azure.
  • O suporte ao alvo começa no .NET Framework 4.6.2 e no .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 continua a ser uma funcionalidade em pré-visualização e é de adesão opcional na versão 7.0. Teste as opções de compatibilidade em cargas de trabalho de produção e mantenha um plano de reversão.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
7.0.0 Março de 2026 Lançamento de disponibilidade geral.
7.0.1 Abril de 2026 Foram corrigidas as consultas de metadados SqlBulkCopy para o SQL Server 2016 e para os pools SQL dedicados do Azure Synapse Analytics, foram corrigidos os metadados dos campos vetoriais, foi adicionada a dependência System.Data.Common do .NET Framework em falta e foi adicionado o reencaminhamento de tipos para abstrações de autenticação.
7.0.2 Junho de 2026 Alinhou o driver principal e os pacotes complementares, reforçou a análise sintática dos tokens TDS, corrigiu o tratamento da cache de verificação de assinaturas do Always Encrypted e corrigiu erros em chamadas de cancelamento e em chamadas com buffer nulo GetBytes e GetChars.
7.0.3 Setembro de 2026 Atualizei o SNI para a 6.0.3. Foi corrigida uma regressão de SqlBulkCopy para inícios de sessão que não conseguem ler sys.all_columns, uma regressão na alocação de memória quando o rastreio está desativado, a validação de ServerCertificate no SNI gerido, a verificação da chave de atestação do enclave do Always Encrypted e o registo de repetição configurável de um processador de resolução de assemblies ao nível de todo o processo.

Importante

A partir da 7.0.2, alinhar as referências diretas a Microsoft.Data.SqlClient, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, e Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Permita que Microsoft.Data.SqlClient.Internal.Logging seja resolvido de forma transitiva. No .NET Framework, as versões dos assemblies de Extensions.Azure, Internal.Logging e 1.0.0.0 mudaram de 7.0.0.0 para Extensions.Abstractions. Recompile a aplicação ou adicione redirecionamentos de associação quando atualizar estes pacotes.

6.1 LTS

A versão 6.1.0 foi lançada em julho de 2025, mas foi posteriormente 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 alterações

  • Transporte nativo de vetores do SQL Server 2025 via SqlVector<T>, inicialmente para vetores de vírgula 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 em tempo de execução. As aplicações executáveis devem utilizar um ativo de runtime do .NET ou .NET Framework suportado.
  • Trabalho de multiplexagem opcional de pacotes para leituras assíncronas de grande dimensão e processamento de pontos finais para a base de dados SQL no Microsoft Fabric.
  • Suporte melhorado para compilação nativa Ahead-of-Time (AOT).
  • Reduzidas as alocações nos fluxos de processamento de ligações e de TDS.
  • A base interna para a extensibilidade do Public Security Support Provider Interface (SSPI) foi adicionada na versão 7.0.

Não implementes a versão 6.1.0. A versão 6.1.1 reverteu as alterações afetadas relacionadas com a deteção e repetição de pacotes.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
6.1.0 Julho de 2025 Lançamento de disponibilidade geral. Este pacote não foi listado devido a regressões críticas. Não o uses.
6.1.1 Agosto de 2025 Foram revertidas as alterações à deteção de pacotes parciais, às correções adicionais e às repetições introduzidas na versão 6.1.0. Conjuntos de referência vetorial corrigidos e SqlVector<T>.Null.
6.1.2 Outubro de 2025 Foram corrigidos a inicialização precoce do contador de desempenho, a substituição de provedores de autenticação personalizados e a concorrência no pool, que impediam a utilização do tamanho máximo configurado do pool.
6.1.3 Novembro de 2025 Adicionado suporte a IgnoreServerProvidedFailoverPartner para grupos de disponibilidade básicos e portas personalizadas. Corrigida a inicialização precoce das métricas do EventSource.
6.1.4 Janeiro de 2026 Foi adicionado EnableMultiSubnetFailoverByDefault. Corrigidas falhas no processamento em lote SqlDataAdapter e contagens negativas de ligações ativas nas métricas do pool.
6.1.5 Abril de 2026 Foi removido o processamento desnecessário de Nome Principal de Serviço (SPN) e de Sistema de Nomes de Domínio (DNS) para autenticação não integrada, fez-se com que ExecuteScalar propagasse os erros do servidor devolvidos após os dados e corrigiram-se os tipos de metadados de vetores.
6.1.6 Junho de 2026 Foi adicionado suporte opcional ao agente do Windows Web Account Manager (WAM), reforçada a análise sintática de tokens TDS, corrigidas falhas de assinatura da chave mestra de coluna em cache e corrigida a validação de argumentos GetChars.
6.1.7 Setembro de 2026 Atualizei o SNI para a 6.0.3. Corrigidas a validação em ServerCertificate no SNI gerido, a verificação da chave de atestação do enclave do Always Encrypted, o comportamento de nova tentativa de ligação em AccessTokenCallback e a nova tentativa configurável ao registar um processador de resolução de assemblies para todo o processo.

Linhas de lançamento anteriores

As seguintes linhas de lançamento já não são suportadas. Use os resumos deles quando planear uma atualização em várias versões de drivers.

6.0

A versão 6.0 chegou à disponibilidade geral em janeiro de 2025. O patch final foi 6.0.5, lançado em janeiro de 2026.

  • Foi adicionado suporte nativo para JSON do SQL Server através de Microsoft.Data.SqlTypes.SqlJson, incluindo operações de leitura, escrita, streaming e cópia em massa.
  • Foram adicionadas cargas de diagnóstico públicas e fortemente tipadas para eventos de comando, conexão e transação.
  • Foi adicionado OpenAsync(SqlConnectionOverrides, CancellationToken), incluindo OpenWithoutRetry.
  • Foi adicionado suporte para DateOnly e TimeOnly em parâmetros estruturados DataTable e SqlDataRecord.
  • Adicionei suporte para .NET 9.
  • Eliminei os ativos de runtime .NET Standard e .NET 6. Os alvos suportados tornaram-se o .NET Framework 4.6.2 e versões posteriores, bem como o .NET 8 e versões posteriores.
  • Limitado EnableOptimizedParameterBinding aos comandos de texto.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
6.0.0 Janeiro de 2025 Lançamento de disponibilidade geral. Este pacote não está listado no NuGet, e as notas da origem não indicam o motivo.
6.0.1 Janeiro de 2025 APIs de referência corrigidas SqlClientDiagnostic , avisos TLS de nível inferior e dependências.
6.0.2 Abril de 2025 Foram corrigidas possíveis falhas nulas na receção de socket, APIs de referência SqlJson, parâmetros de saída em JSON e dependências.
6.0.3 Outubro de 2025 Impediu a substituição de fornecedores personalizados de autenticação e corrigiu a concorrência no pool, que subutilizava Max Pool Size.
6.0.4 Novembro de 2025 Foi adicionado Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner para Grupos de Disponibilidade Básicos que utilizam portas TCP personalizadas.
6.0.5 Janeiro de 2026 Corrigi SqlDataAdapter o tratamento de null RPC em lote, adicionei Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault, e atualizei dependências.

5,2

A versão 5.2 chegou à disponibilidade geral em fevereiro de 2024. O patch final foi a 5.2.3, lançada em abril de 2025.

  • Adicionado SqlConnection.AccessTokenCallback para aquisição de tokens assíncrona e compatível com pool.
  • Adicionado SqlBatch e SqlBatchCommand na versão .NET 6 e posteriores.
  • Adicionei SqlDiagnosticListener suporte ao .NET Standard.
  • Foi adicionada a versão de 64 bits SqlBulkCopy.RowsCopied64. A propriedade anterior RowsCopied continua a ser um número inteiro de 32 bits.
  • Adicionei Active Directory Workload Identity autenticação.
  • Adicionei suporte a .NET 8 e a plataformas big-endian.
  • Alterado UseOneSecFloorInTimeoutCalculationDuringLogin para o padrão para true.
  • Utilizado NegotiateAuthentication para SSPI gerido no .NET 7 e em versões posteriores.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
5.2.0 Fevereiro de 2024 Lançamento de disponibilidade geral.
5.2.1 maio de 2024 Correção de ligações a instâncias com nome no Linux com portas, FireInfoMessageEventOnUserErrors, parâmetros com valor de tabela datetimeoffset(n), OpenAsync diferido e preservação de AccessTokenCallback por SqlConnection.Clone().
5.2.2 Agosto de 2024 Corrigidos os tempos limite dos tokens, geridas as ligações de socket SNI, o direcionamento de assemblies, as novas tentativas do SSPI, as leituras de tipos definidos pelo utilizador e os dados de leitor encriptado. Pacotes de identidade atualizados para CVE-2024-35255.
5.2.3 Abril de 2025 Corrigiu possíveis falhas nulas no socket-receive e inconsistências na montagem de referência, permitiu números de erro transitórios negativos e atualizou dependências.

5.1

A versão 5.1 chegou à disponibilidade geral em janeiro de 2023. O patch final foi o 5.1.9, lançado em janeiro de 2026.

  • Adicionei suporte ao .NET 6 e eliminei o .NET Core 3.1.
  • Adicionado suporte a DateOnly e TimeOnly para valores de parâmetros e GetFieldValue.
  • Adicionei TLS 1.3 em .NET e caminhos nativos do SQL Server Network Interface (SNI).
  • Adicionado ServerCertificate para correspondência exata de certificados com Encrypt=Mandatory e Encrypt=Strict.
  • Adicionei suporte Windows ARM64 para o .NET Framework.
  • Tornou público o analisador de cadeias de caracteres SqlConnectionEncryptOption.
  • A versão 5.1.3 corrigiu o caminho de downgrade de encriptação CVE-2024-0056 e a validação da cadeia de certificados.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
5.1.0 Janeiro de 2023 Lançamento de disponibilidade geral.
5.1.1 Março de 2023 Corrigidos os problemas de comunicação de erros do Always Encrypted, das transações em modo de redirecionamento, da limitação da taxa de tokens, das falhas de RPC TDS em consultas de grande dimensão e do tratamento de valores nulos GetBytesAsync.
5.1.2 Outubro de 2023 Corrigiram instâncias de utilizador SQL Express, tentativas de enclave, LocalDB, valores de construtor de strings de conexão, SqlConnectionEncryptOption conversão de configuração e OpenAsync falhas transitórias.
5.1.3 janeiro de 2024 Corrigidos o CVE-2024-0056 e a validação da cadeia de certificados.
5.1.4 janeiro de 2024 Corrigido um bloqueio numa transação distribuída do .NET e atualizado o Azure.Identity para corrigir a CVE-2023-36414.
5.1.5 janeiro de 2024 Foi corrigida a limpeza de transações antes do pooling e as 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 Corrigidos OpenAsync, o tempo limite de autenticação e as falhas de dados pendentes dos leitores encriptados. Dependências de identidade atualizadas para CVE-2024-35255 e instâncias em cache TokenCredential.
5.1.7 Abril de 2025 Corrigiu uma possível falha por valor nulo na receção no socket, alinhou as assemblies de origem e de referência e atualizou as dependências.
5.1.8 Novembro de 2025 Foi adicionado Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, corrigido o tratamento da marca de ordem dos bytes (BOM) em UTF-8 na cópia em massa, modernizada a criação do MSAL e atualizadas as dependências.
5.1.9 Janeiro de 2026 Mudei SqlStatistics o timing para Environment.TickCount e atualizei dependências específicas do framework.

5.0

A versão 5.0 entrou em disponibilidade geral em agosto de 2022. O patch final foi a 5.0.2, lançada em março de 2023.

  • Adicionou TDS 8.0 até Encrypt=Strict. O modo estrito inicia o TLS antes da troca de login TDS e valida sempre o certificado do servidor.
  • Alterado SqlConnectionStringBuilder.Encrypt de bool para SqlConnectionEncryptOption.
  • Os tipos Common Language Runtime (CLR) comuns do SQL Server foram movidos para o pacote Microsoft.SqlServer.Server, com versão autónoma.
  • Adicionadas as opções de ligação Server SPN e Failover Server SPN.
  • Adicionado suporte a aliases do SQL Server no Windows no .NET atual.
  • Foi adicionado SqlDataSourceEnumerator ao Windows.
  • Abandonei o .NET Framework 4.6.1.

Importante

A SqlConnectionStringBuilder.Encrypt mudança de tipo é uma quebra binária. Os tipos removidos de Microsoft.Data.SqlClient.Server também exigem alterações no código-fonte para utilizarem Microsoft.SqlServer.Server. Recompilar aplicações e bibliotecas, atualizar os namespaces e verificar conflitos de namespace quando System.Data.SqlClient permanecer referenciado.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
5.0.0 Agosto de 2022 Lançamento de disponibilidade geral.
5.0.1 Outubro de 2022 Foi restaurado HostNameInCertificate no .NET Framework e foram corrigidos interbloqueios de atenção, SqlConnectionStringBuilder.Encrypt, o registo de cancelamento, bloqueios do SNI gerido, colação UTF-8 e uma falha do SNI no domínio da aplicação.
5.0.2 Março de 2023 Corrigidas uma fuga de memória em leitura assíncrona, o modo de redirecionamento TransactionScope, erros do Always Encrypted, falhas de RPC de TDS em consultas de grande dimensão e interbloqueios em transações distribuídas.

4.1

A versão 4.1 atingiu disponibilidade geral em janeiro de 2022. O patch final foi o 4.1.1, lançado em setembro de 2022.

  • Adicionado Attestation Protocol=None para enclaves de Segurança Baseada em Virtualização (VBS).
  • Solicitações paralelizadas do SQL Server Resolution Protocol no Linux e no macOS quando MultiSubnetFailover está ativado.
  • Verificações fixas da lista de revogação de certificados durante a autenticação.
  • Corrigidos problemas de autenticação do Microsoft Entra, valores SqlBinary e rowversion nulos e o comportamento da intercalação UTF-8.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
4.1.0 Janeiro de 2022 Lançamento de disponibilidade geral.
4.1.1 Setembro de 2022 Corrigiram falhas na lista de revogação de certificados, paralelizaram pedidos do SQL Server Resolution Protocol para MultiSubnetFailover, e corrigiram falhas de autenticação Microsoft Entra, rowversion, UTF-8 e SNI no domínio da aplicação.

4.0

A versão 4.0 chegou à disponibilidade geral em novembro de 2021. O patch final foi a 4.0.6, lançada em agosto de 2024.

  • Alterou o valor padrão de Encrypt de false para true.
  • Adicionado SqlCommand.EnableOptimizedParameterBinding para comandos com muitos parâmetros.
  • Foi adicionado SqlFileStream para Windows por meio da implementação do .NET Standard.
  • Adicionado suporte a instâncias LocalDB partilhadas no SNI gerido.
  • Adicionados GetFieldValue<T> e GetFieldValueAsync<T> para XmlReader, TextReader e Stream.
  • Removi o mecanismo de segurança da lógica configurável de repetição. O Retry permaneceu desativado até que uma aplicação configurasse um fornecedor.
  • As falhas de autenticação do Microsoft Entra foram alteradas para apresentarem SqlException em vez de AggregateException.
  • Abandonei o .NET Core 2.1.
  • A versão 4.0.5 corrigiu o caminho de downgrade de encriptação CVE-2024-0056 e a validação da cadeia de certificados.

Importante

Como a encriptação está ativada por predefinição na versão 4.0 e nas versões posteriores, uma atualização pode revelar problemas de confiança do certificado ou incompatibilidades no nome do servidor. Não desatives a encriptação para contornar estes erros. Instale um certificado de servidor de confiança ou configure a validação de certificados para a implementação.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
4.0.0 Novembro de 2021 Lançamento de disponibilidade geral.
4.0.1 Janeiro de 2022 Adicionei SuppressInsecureTLSWarning e corrigi Kerberos .NET 6, nomes de pipes do LocalDB e consultas de enclave concorrentes.
4.0.2 Setembro de 2022 Corrigiram falhas na lista de revogação de certificados, paralelizaram pedidos do SQL Server Resolution Protocol para MultiSubnetFailover, e corrigiram falhas de autenticação Microsoft Entra, rowversion, UTF-8 e SNI no domínio da aplicação.
4.0.3 Abril de 2023 Foi reduzida a limitação dos tokens de contas em cache e corrigidas as falhas de RPC TDS em consultas grandes.
4.0.4 Outubro de 2023 Foram corrigidas as novas tentativas assíncronas de enclave, o mecanismo de recurso do LocalDB e do SNI gerido, as versões dos ficheiros e a correlação da atividade de ligação.
4.0.5 janeiro de 2024 Corrigidos o CVE-2024-0056 e a validação da cadeia de certificados.
4.0.6 Agosto de 2024 Limpeza de eventos de transação fixa antes do pooling e ActiveDirectoryAuthenticationProvider.AcquireTokenAsync gestão do timeout.

3.1

A versão 3.1 chegou à disponibilidade geral em março de 2022. O patch final foi 3.1.7, lançado em agosto de 2024.

  • Adicionado Attestation Protocol=None para enclaves VBS.
  • Foram adicionados os erros SQL 42108 e 42109 à lista predefinida de erros transitórios.
  • Adicionado suporte Windows ARM64 para o .NET Framework na versão 3.1.2.
  • Redução dos pedidos repetidos de tokens do Microsoft Entra através da aquisição silenciosa de tokens na versão 3.1.3.
  • Corrigido o caminho de downgrade de encriptação CVE-2024-0056 na versão 3.1.5.
  • Corrigiu a limpeza de transações antes do pooling e o tratamento da expiração do token Microsoft Entra na versão 3.1.7.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
3.1.0 Março de 2022 Lançamento de disponibilidade geral.
3.1.1 Agosto de 2022 Corrigidos os valores nulos de SqlBinary, as falhas do Kerberos no .NET 6 e as falhas de referência nula na autenticação do Microsoft Entra.
3.1.2 Fevereiro de 2023 Adicionou o suporte .NET Framework para Windows ARM64 e corrigiu a segurança de threads com listas de tentativas, bloqueios de transações distribuídas, colação UTF-8 e validação de procedimentos armazenados.
3.1.3 Março de 2023 Reduzida a limitação de taxa dos tokens Microsoft Entra com AcquireTokenSilent e corrigidas falhas de TDS RPC em consultas de grande dimensão.
3.1.4 Outubro de 2023 Foram corrigidas as novas tentativas assíncronas do enclave, o recurso ao LocalDB e ao SNI gerido, as versões dos ficheiros, a correlação da atividade da ligação e a formatação do EventSource.
3.1.5 janeiro de 2024 Corrigidos o CVE-2024-0056 e a validação da cadeia de certificados.
3.1.6 Agosto de 2024 Este pacote não estava devidamente assinado e não estava listado. Não existe nenhum ficheiro de nota de lançamento a montante. Utiliza a versão 3.1.7 em vez disso.
3.1.7 Agosto de 2024 Foi corrigida a limpeza de eventos de transação antes do agrupamento, a expiração dos tempos de autenticação, a assinatura da assemblagem e uma falha de SNI no domínio da aplicação.

3.0

A versão 3.0 atingiu disponibilidade geral em junho de 2021. O patch final foi a 3.0.1, lançada em setembro de 2021.

  • Adicionada lógica configurável de repetição para operações de conexão e de comando. Na versão 3.0, continuou a ser opcional, protegido por Switch.Microsoft.Data.SqlClient.EnableRetryLogic.
  • Adicionados EventCounters para atividade de ligação e pool.
  • Adicionada a autenticação através de Azure.Identity.
  • Adicionou o registo do fornecedor de armazenamento de chaves Always Encrypted com escopo de ligação e comando.
  • Adicionei a preferência de endereços IP TCP.
  • Alterou a autenticação de identidade gerida atribuída pelo utilizador para usar o ID do cliente em vez do ID do objeto em User Id.
  • Mudei os valores nulos de rowversion do SQL para devolver DBNull em vez de um array de bytes vazio. Um interruptor AppContext preservou o comportamento antigo.
  • Aumentei a meta mínima do .NET Framework de 4.6 para 4.6.1.

Os fornecedores de armazenamento de chaves do sistema têm precedência sobre os fornecedores registados numa ligação ou comando a partir da versão 3.0. Renomeie um fornecedor personalizado se o nome entrar em conflito com o de um fornecedor integrado.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
3.0.0 Junho de 2021 Lançamento de disponibilidade geral.
3.0.1 Setembro de 2021 Corrigidos bloqueios na abertura de ligações ao Microsoft Entra, o estado de promoção de transações, a encriptação obrigatória, a recursão nas tentativas de repetição, os interbloqueios e as ligações inutilizáveis.

2.1

A versão 2.1 chegou à disponibilidade geral em novembro de 2020. O patch final foi o 2.1.7, lançado em janeiro de 2024.

  • Alargado o Always Encrypted às plataformas suportadas do .NET Standard 2.0.
  • Foi adicionado suporte para enclaves seguros no Unix para o .NET Core e em todas as plataformas compatíveis com o .NET Standard 2.1.
  • Adicionei Active Directory Device Code Flow e geri autenticação de identidade.
  • Adicionaram ganchos de personalização para autenticação interativa e por código de dispositivo.
  • Foram adicionados metadados de classificação de sensibilidade.
  • Foi adicionado SqlConnection.ServerProcessId.
  • Adicionei a Command Timeout opção de ligação como padrão para comandos criados por uma ligação.
  • A versão 2.1.7 corrigiu o caminho de descida de encriptação CVE-2024-0056.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
2.1.0 Novembro de 2020 Lançamento de disponibilidade geral.
2.1.1 Dezembro de 2020 Corrigida a identidade gerida atribuída pelo sistema no Funções do Azure, no Unix Kerberos e no TCP keep-alive.
2.1.2 Março de 2021 Correção das instâncias nomeadas do Unix, resultados incorretos de timeout, processamento inseguro de DTD, SPNs do Kerberos, dependências de cache em falta, rastreio e cabeçalhos MARS.
2.1.3 Maio de 2021 Preveniu a corrupção de dados de transações com conjuntos de resultados abertos e corrigiu uma condição de corrida SinglePhaseCommit e TransactionEnded.
2.1.4 Setembro de 2021 As ligações garantidas falham quando é necessária encriptação e as ligações fixas entram num estado inutilizável.
2.1.5 Agosto de 2022 Foi adicionada a validação do comprimento do procedimento armazenado CommandText e foram corrigidos problemas na autenticação Kerberos do .NET 6 e em SqlTypeWorkarounds.
2.1.6 Abril de 2023 Foram corrigidas falhas de RPC TDS em consultas de grande dimensão no SqlCommand.ExecuteReaderAsync, conflitos de ordenação UTF-8 predefinida e interbloqueios no envio de sinais de atenção.
2.1.7 janeiro de 2024 Corrigidos o CVE-2024-0056 e a validação da cadeia de certificados.

2.0

A versão 2.0 chegou à disponibilidade geral em junho de 2020. O patch final foi o 2.0.1, lançado em agosto de 2020.

  • Adicionada a autenticação Active Directory Integrated e Active Directory Interactive no .NET Core e no .NET Standard.
  • Adicionei Active Directory Service Principal autenticação.
  • Adicionei Microsoft.Data.SqlClient.EventSource traço.
  • Adicionou TCP cross-platform keep-alive e uma implementação de rede gerida opt-in no Windows para testes e depuração. O caminho gerido não suportava a autenticação do Windows não pertencente a um domínio.
  • Adicionei SqlBulkCopy.RowsCopied e encomendei dicas em grande quantidade.
  • Foi adicionado SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry).
  • Adicionei suporte ao Windows ARM através da Microsoft.Data.SqlClient.SNI.runtime dependência.
  • Passou a validar o certificado do servidor quando um servidor força a encriptação, incluindo quando a cadeia de ligação define Encrypt=false. As ligações podem falhar após esta atualização se o certificado não for confiável ou se o nome não corresponder ao servidor.
  • Alterei o tratamento da escala de parâmetros decimais para usar arredondamento compatível com SQL Server.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
2.0.0 Junho de 2020 Lançamento de disponibilidade geral.
2.0.1 Agosto de 2020 Foi adicionada uma configuração de autenticação compatível com coexistência e foram corrigidos a expiração de tokens em pool, o tratamento de falhas transitórias, o armazenamento em cache de enclaves e os erros nativos do SNI no pré-início de sessão.

1.1

A versão 1.1 atingiu disponibilidade geral em novembro de 2019. O patch final foi a 1.1.4, lançada em março de 2021.

  • Foi adicionado o Always Encrypted com enclaves seguros nas plataformas suportadas do .NET Framework e do .NET Core.
  • Adicionada a expansão |DataDirectory| em AttachDBFilename no .NET Core.
  • Leituras assíncronas melhoradas com cache do buffer de destino de vários pacotes.
  • Redução da sobrecarga de snapshots em TdsParserStateObject e SqlDataReader.
  • Foram corrigidos, em patches posteriores, erros de cabeçalho no estado de tempo limite e em Multiple Active Result Sets (MARS).

Lançamentos

Versão Libertado Alterações relevantes para o cliente
1.1.0 Novembro de 2019 Lançamento de disponibilidade geral.
1.1.1 Fevereiro de 2020 Foram revertidas alterações assíncronas SNIPacket que causavam bloqueios e foi corrigido o intervalo da dependência de SNI.
1.1.2 Abril de 2020 Foram adicionados nomes de utilizador para a autenticação interativa do Active Directory e foram corrigidas a persistência da palavra-passe e os cabeçalhos MARS TDS.
1.1.3 Maio de 2020 Impediu que transações abortadas incluíssem ligações agrupadas e reverteu a correção regressiva do cabeçalho MARS.
1.1.4 Março de 2021 Corrigidos resultados incorretos no estado de tempo limite e erros de cabeçalho MARS no .NET Framework 4.8 e em versões posteriores.

1.0

Microsoft. O 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.

  • Foi introduzido o provedor Microsoft.Data.SqlClient disponibilizado em separado.
  • Suportava o .NET Framework 4.6 e versões posteriores, .NET Core 2.1 e versões posteriores, e .NET Standard 2.0.
  • Foi adicionada Active Directory Interactive autenticação no .NET Framework.
  • Foi adicionada Active Directory Password autenticação no .NET Core.
  • Adicionados metadados de classificação da sensibilidade dos dados a SqlDataReader.
  • Foi adicionado suporte à intercalação UTF-8 do SQL Server 2019.
  • Foi adicionado suporte para Always Encrypted no .NET Core.

Lançamentos

Versão Libertado Alterações relevantes para o cliente
1.0.19239.1 Agosto de 2019 Lançamento de disponibilidade geral. Reutilização de ligação fixa após falhas de transação, publicação SNI, tratamento invariante à globalização e alargamento nulo em cópias em massa.
1.0.19249.1 Setembro de 2019 Corrigidas as leituras de grandes volumes de dados de vários pacotes no Unix.
1.0.19269.1 Setembro de 2019 Restaurei SqlCommand.StatementCompleted, adicionei o que faltava SqlConnectionStringBuilder.Authentication, e reverti uma SqlAuthenticationParameters.Resource alteração incompatível na API.

Para uma aplicação que esteja a migrar do provider anterior, use Migrar de System.Data.SqlClient para Microsoft.Data.SqlClient em vez de se limitar a ler as notas de lançamento.

Notas opcionais de lançamento do pacote

Os pacotes opcionais têm as suas próprias notas de lançamento. A partir da versão 7.0.2, são disponibilizados com a versão alinhada com a do controlador 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 versão das abstrações de extensões
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Notas de versão do Azure Key Vault Provider

Não faças referência direta a Microsoft.Data.SqlClient.Internal.Logging. É uma dependência interna partilhada por pacotes de drivers.

Avaliar uma atualização

  1. Identifique todos os drivers e versões opcionais do pacote usadas direta ou transitivamente.
  2. Leia as notas de versão de todas as versões principais e secundárias abrangidas pela atualização.
  3. Verifique o ciclo de vida do suporte ao driver SqlClient para a compatibilidade do framework alvo e da base de dados.
  4. Atualize todos os pacotes relacionados para versões compatíveis.
  5. Crie e teste a autenticação, a encriptação, o agrupamento de ligações, os parâmetros, as transações, as novas tentativas, os diagnósticos e a saída da implementação da aplicação.

Para comandos de instalação e implementação, consulte Instalar, atualizar e implementar Microsoft. Data.SqlClient.