Novedades en Microsoft. Data.SqlClient

Microsoft. Data.SqlClient se distribuye de forma independiente de .NET. Este artículo resume las características significativas, los cambios de comportamiento y los cambios de compatibilidad en cada línea de lanzamiento. Las tablas de lanzamiento incluyen todas las publicaciones de paquetes estables, incluyendo cada hotfix y paquete no listado. Para ver todas las correcciones y actualizaciones de dependencias, consulte las notas completas de la versión en el repositorio SqlClient.

Versiones actuales

Línea de lanzamiento Versión más reciente Fecha de lanzamiento Support
7.0 7.0.3 Septiembre de 2026 Apoyo a Plazo Estándar (STS)
6.1 6.1.7 Septiembre de 2026 Soporte técnico a largo plazo (LTS)
versión preliminar 7.1 7.1.0-preview3.26238.4 Agosto de 2026 Preview

No uses versiones de vista previa en producción. Las APIs y comportamientos de la vista previa pueden cambiar antes de la disponibilidad general (GA).

Las tablas de lanzamiento y los resúmenes de disponibilidad general utilizan el mes de publicación de NuGet. El artículo sobre el ciclo de vida enumera las fechas oficiales de lanzamiento, que pueden variar. Para conocer los periodos de soporte, consulta el ciclo de vida de soporte del controlador SqlClient.

versión preliminar 7.1

La versión preliminar 7.1 amplía las API de Always Encrypted, la agrupación de conexiones, la detección de esquemas y el procesamiento por lotes. Los cambios hasta la versión 7.1.0-preview3 incluyen:

  • SqlBatch compatibilidad con .NET Framework.
  • Sobrecargas asincrónicas SqlConnection.GetSchemaAsync .
  • Alias de cadenas de conexión como ColumnEncryption, ConnectTimeout, FailoverPartner, PacketSize, y WorkstationId.
  • Pseudo-asignaciones de columnas en grafos SQL para $node_id, $edge_id, $from_id, y $to_id en SqlBulkCopy.
  • Aplicación opcional del tiempo de espera por inactividad de la conexión.
  • Un modo opcional de tiempo de espera de conexión que incluye el tiempo transcurrido mientras se espera una conexión del grupo.
  • Desarrollo adicional del pool de conexiones experimental basado en canales.
  • Métodos asíncronos en proveedores de almacenamiento de claves Always Crypted. El controlador aún no llama a estos métodos durante la ejecución de comandos, por lo que no hacen que las operaciones Always Encrypted existentes sean asíncronas.

SqlBatchCommand.CommandBehavior se respeta a partir de esta línea. Las versiones anteriores ignoraban la propiedad. La opción de conexión Type System Version=SQL Server 2000 obsoleta ahora genera un ArgumentException.

Preview3 también cambia la validación de certificados y enclaves. ServerCertificate siempre compara el archivo de certificado configurado con el certificado presentado por el servidor. Un archivo no válido o ilegible ahora hace que falle la conexión en lugar de usar como alternativa la validación del nombre de host. La atestación de enclaves de Virtual Secure Mode (VSM) y Host Guardian Service (HGS) verifica ahora que la clave pública del enclave está vinculada al informe de atestación firmado. Vuelve a probar estas rutas al pasar desde una versión preliminar anterior.

Lee las notas de la versión de la versión preliminar 1, la versión preliminar 2 y la versión preliminar 3 antes de probar esta línea.

7.0 STS

La versión 7.0 alcanzó disponibilidad general en marzo de 2026. Es la línea STS actual.

Características y cambios

  • La autenticación Microsoft Entra proporcionada por el controlador pasó del paquete básico a Microsoft.Data.SqlClient.Extensions.Azure. Añade el paquete de extensión cuando uses un Active Directory modo de autenticación.
  • El paquete central ya no depende de Azure.Core, Azure.Identity, ni de Biblioteca de autenticación de Microsoft (MSAL).
  • SqlConnection.SspiContextProvider soporta negociación personalizada de Kerberos y tokens NTLM. La identidad del proveedor forma parte de la clave del pool de conexión.
  • El enrutamiento mejorado para Azure SQL Hyperscale y réplicas de lectura nombradas se negocia automáticamente.
  • Los eventos de diagnóstico de comandos, conexiones y transacciones fuertemente tipados están disponibles en .NET Framework y en .NET actual.
  • SqlConfigurableRetryFactory.BaselineTransientErrors expone la lista predeterminada de errores transitorios del controlador.
  • Active Directory Password La autenticación está obsoleta. Utiliza autenticación interactiva para aplicaciones de usuario, autenticación por principal de servicio para servicios o identidad gestionada para cargas de trabajo alojadas en Azure.
  • La compatibilidad de destino comienza con .NET Framework 4.6.2 y .NET 8. El controlador también permite compilar y ejecutar en .NET 10.

La multiplexación de paquetes para lecturas asíncronas sigue siendo una característica en versión preliminar y su activación es voluntaria en 7.0. Prueba los conmutadores de compatibilidad con las cargas de trabajo de producción y mantén una vía de reversión.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
7.0.0 Marzo de 2026 Versión de disponibilidad general.
7.0.1 Abril de 2026 Se corrigieron las consultas de metadatos de SqlBulkCopy para SQL Server 2016 y los grupos de SQL dedicados de Azure Synapse Analytics, se corrigieron los metadatos de campos vectoriales, se añadió la dependencia que faltaba de .NET Framework System.Data.Common y se añadió el reenvío de tipos para las abstracciones de autenticación.
7.0.2 Junio de 2026 Se alinearon el controlador principal y los paquetes complementarios, se reforzó el análisis de tokens TDS, se corrigió la gestión de la caché de verificación de firmas de Always Encrypted y se corrigieron errores en las llamadas de cancelación y en las llamadas con búfer nulo GetBytes y GetChars.
7.0.3 Septiembre de 2026 Actualizado SNI a la 6.0.3. Se ha corregido una regresión de SqlBulkCopy en los inicios de sesión que no pueden leer sys.all_columns, una regresión de asignación de memoria cuando el seguimiento está deshabilitado, la validación de ServerCertificate en SNI administrado, la verificación de la clave de atestación del enclave de Always Encrypted y el reintento configurable al registrar un controlador de resolución de ensamblados para todo el proceso.

Importante

A partir de la 7.0.2, alinear las referencias directas con Microsoft.Data.SqlClient, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, y Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Permita que Microsoft.Data.SqlClient.Internal.Logging se resuelva de forma transitiva. En .NET Framework, las versiones ensambladoras de Extensions.Azure, , y Internal.Logging cambiaron de 1.0.0.0 a 7.0.0.0Extensions.Abstractions. Reconstruye la aplicación o añade redirecciones de enlace cuando actualices estos paquetes.

6.1 LTS

La versión 6.1.0 se lanzó en julio de 2025, pero posteriormente fue retirada de la lista debido a regresiones críticas. La versión 6.1.1, lanzada en agosto de 2025, estableció la línea 6.1 LTS soportada.

Características y cambios

  • Transporte nativo de vectores de SQL Server 2025 a través de SqlVector<T>, inicialmente para vectores de coma flotante de precisión simple.
  • Un recurso de referencia .NET Standard 2.0 para compatibilidad de bibliotecas. Este activo no es una implementación en tiempo de ejecución. Las aplicaciones ejecutables deben utilizar un activo de ejecución compatible con .NET Framework o .NET.
  • Implementación opcional de la multiplexación de paquetes para lecturas asincrónicas de gran volumen y la gestión de puntos de conexión para la base de datos SQL en Microsoft Fabric.
  • Soporte mejorado para la compilación nativa Ahead-of-Time (AOT).
  • Se redujeron las asignaciones en las rutas de procesamiento de conexiones y de TDS.
  • Se añadió el trabajo preparatorio interno para la extensibilidad pública de la Interfaz del Proveedor de Soporte de Seguridad (SSPI) en la versión 7.0.

No despliegues la versión 6.1.0. La versión 6.1.1 revirtió los cambios afectados en la detección de paquetes y la reproducción.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
6.1.0 Julio de 2025 Versión de disponibilidad general. Este paquete no fue incluido debido a regresiones críticas. No lo uses.
6.1.1 Agosto de 2025 Se han revertido los cambios introducidos en la versión 6.1.0 en la detección de paquetes parciales, su corrección y su reprocesamiento. Conjuntos de referencia vectorial corregidos y SqlVector<T>.Null.
6.1.2 Octubre de 2025 Se corrigió la inicialización temprana del contador de rendimiento, la sustitución de proveedores de autenticación personalizados y la concurrencia del pool que impedían el uso del tamaño máximo del pool configurado.
6.1.3 Noviembre de 2025 Se agregó IgnoreServerProvidedFailoverPartner para grupos de disponibilidad básicos y puertos personalizados. Se corrigió la inicialización temprana de las métricas de EventSource.
6.1.4 Enero de 2026 Se agregó EnableMultiSubnetFailoverByDefault. Se corrigieron SqlDataAdapter los fallos en el procesamiento por lotes y los recuentos negativos de conexiones activas en las métricas del pool.
6.1.5 Abril de 2026 Se eliminó el procesamiento innecesario de Nombre de entidad de servicio (SPN) y Sistema de nombres de dominio (DNS) en la autenticación no integrada, se hizo que ExecuteScalar propagara los errores del servidor devueltos después de los datos y se corrigieron los tipos de metadatos de vectores.
6.1.6 Junio de 2026 Se añadió soporte opcional para el agente de Windows Web Account Manager (WAM), se reforzó el análisis de los tokens TDS, se corrigieron los errores de firma de las claves maestras de columna almacenadas en caché y se corrigió la validación de argumentos de GetChars.
6.1.7 Septiembre de 2026 Actualizado SNI a la 6.0.3. Se corrigió la validación en ServerCertificate SNI administrado, la verificación de la clave de certificación del enclave de Always Encrypted, el comportamiento de reintento de conexión de AccessTokenCallback y el reintento configurable al registrar un controlador de resolución de ensamblados para todo el proceso.

Líneas de lanzamiento anteriores

Las siguientes líneas de lanzamiento ya no están soportadas. Utiliza sus resúmenes cuando planees una actualización en varias versiones de controladores.

6.0

La versión 6.0 alcanzó disponibilidad general en enero de 2025. El parche final fue la 6.0.5, lanzada en enero de 2026.

  • Se añadió compatibilidad nativa con JSON de SQL Server a través de Microsoft.Data.SqlTypes.SqlJson, incluidas las rutas de lectura, escritura, streaming y copia masiva.
  • Se añadieron cargas de diagnóstico públicas y fuertemente tipadas para eventos de comandos, conexiones y transacciones.
  • Se ha añadido OpenAsync(SqlConnectionOverrides, CancellationToken), incluido OpenWithoutRetry.
  • Se añadió soporte para DateOnly y TimeOnly en los parámetros estructurados DataTable y SqlDataRecord.
  • Se añadió soporte para .NET 9.
  • Se eliminaron los activos de ejecución .NET Standard y .NET 6. Los objetivos compatibles pasaron a ser .NET Framework 4.6.2 y versiones posteriores, así como .NET 8 y versiones posteriores.
  • Se restringió EnableOptimizedParameterBinding a comandos de texto.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
6.0.0 Enero de 2025 Lanzamiento de disponibilidad general. Este paquete no está listado en NuGet, y las notas aguas arriba no documentan ninguna razón.
6.0.1 Enero de 2025 APIs de referencia corregidas SqlClientDiagnostic , advertencias TLS de nivel inferior y dependencias.
6.0.2 Abril de 2025 Se corrigieron posibles errores por valor nulo en la recepción por socket, las API de referencia de SqlJson, los parámetros de salida JSON y las dependencias.
6.0.3 Octubre de 2025 Se evitó la sustitución de proveedores de autenticación personalizados y se corrigió la concurrencia del grupo, que infrautilizaba Max Pool Size.
6.0.4 Noviembre de 2025 Se ha añadido Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner para grupos de disponibilidad básica que usan puertos TCP personalizados.
6.0.5 Enero de 2026 Se corrigió la gestión de valores nulos en RPC por lotes, se añadió Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault, y se actualizaron las dependencias.

5.2

La versión 5.2 alcanzó disponibilidad general en febrero de 2024. El parche final fue la 5.2.3, lanzada en abril de 2025.

  • Se ha añadido SqlConnection.AccessTokenCallback para la adquisición asíncrona de tokens compatible con grupos.
  • Se añadieron SqlBatch y SqlBatchCommand en .NET 6 y versiones posteriores.
  • Se añadió SqlDiagnosticListener soporte para .NET Standard.
  • Se añadió de 64 bits SqlBulkCopy.RowsCopied64. La propiedad más antigua RowsCopied sigue siendo un entero de 32 bits.
  • Se ha añadido autenticación Active Directory Workload Identity.
  • Se añadió compatibilidad con .NET 8 y con plataformas big-endian.
  • Se cambió UseOneSecFloorInTimeoutCalculationDuringLogin para configurar true de forma predeterminada.
  • Se usó NegotiateAuthentication para SSPI administrado en .NET 7 y versiones posteriores.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
5.2.0 Febrero de 2024 Lanzamiento de disponibilidad general.
5.2.1 Mayo de 2024 Se corrigieron las conexiones a instancias con nombre de Linux con puertos, FireInfoMessageEventOnUserErrors, los parámetros con valores de tabla datetimeoffset(n), el retraso de OpenAsync y la conservación de AccessTokenCallback mediante SqlConnection.Clone().
5.2.2 Agosto de 2024 Se corrigieron los tiempos de espera de token, las conexiones de socket SNI administradas, el direccionamiento de ensamblados, los reintentos de SSPI, las lecturas de tipos definidos por el usuario y los datos del lector cifrado. Paquetes de identidad actualizados para CVE-2024-35255.
5.2.3 Abril de 2025 Se corrigieron posibles errores de valor nulo en la recepción por socket e inconsistencias en los ensamblados de referencia, se permitieron números negativos de error transitorio y se actualizaron las dependencias.

5,1

La versión 5.1 alcanzó disponibilidad general en enero de 2023. El parche final fue la 5.1.9, lanzado en enero de 2026.

  • Se añadió soporte para .NET 6 y se eliminó .NET Core 3.1.
  • Se añadió compatibilidad con DateOnly y TimeOnly para los valores de los parámetros y GetFieldValue.
  • Se añadió TLS 1.3 en .NET y rutas nativas de SQL Server Network Interface (SNI).
  • Se ha añadido ServerCertificate para la coincidencia exacta de certificados con Encrypt=Mandatory y Encrypt=Strict.
  • Se añadió soporte para Windows ARM64 para .NET Framework.
  • Hicieron público el SqlConnectionEncryptOption analizador de cadenas.
  • La versión 5.1.3 corrigió la ruta de descenso de cifrado CVE-2024-0056 y la validación de la cadena de certificados.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
5.1.0 Enero de 2023 Versión de disponibilidad general.
5.1.1 Marzo de 2023 Se corrigieron los errores de notificación de Always Encrypted, las transacciones en modo de redirección, la limitación de tokens, los errores de TDS RPC en consultas grandes y el manejo de valores nulos de GetBytesAsync.
5.1.2 Octubre de 2023 Se corrigieron las instancias de usuario de SQL Express, los reintentos de enclave, LocalDB, los valores del generador de cadenas de conexión, la conversión de configuración de SqlConnectionEncryptOption y los errores transitorios de OpenAsync.
5.1.3 Enero de 2024 Se ha corregido la CVE-2024-0056 y la validación de cadenas de certificados.
5.1.4 Enero de 2024 Se corrigió un interbloqueo en una transacción distribuida de .NET y se actualizó Azure.Identity para corregir CVE-2023-36414.
5.1.5 Enero de 2024 Se corrigió la limpieza de transacciones antes de la agrupación de conexiones y los errores de conversión de fecha y hora de Always Encrypted. Dependencias actualizadas de IdentityModel para CVE-2024-21319.
5.1.6 Agosto de 2024 Se corrigieron OpenAsync, el tiempo de espera de autenticación y los fallos de datos pendientes del lector cifrado. Se actualizaron las dependencias de identidad para CVE-2024-35255 y se almacenaron en caché las instancias de TokenCredential.
5.1.7 Abril de 2025 Se corrigió un posible fallo nulo de recepción de socket, alineó los conjuntos fuente y referencia, y actualizó las dependencias.
5.1.8 Noviembre de 2025 Se añadieron Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, se corrigió el manejo de la marca de orden de bytes UTF-8 en la copia masiva, se modernizó la creación de MSAL y se actualizaron las dependencias.
5.1.9 Enero de 2026 Se movió la temporización de SqlStatistics a Environment.TickCount y se actualizaron las dependencias específicas del marco de trabajo.

5.0

La versión 5.0 alcanzó disponibilidad general en agosto de 2022. El parche final fue la 5.0.2, lanzado en marzo de 2023.

  • Se añadió TDS 8.0 mediante Encrypt=Strict. El modo estricto inicia TLS antes del intercambio de inicio de sesión TDS y siempre valida el certificado del servidor.
  • Se ha cambiado SqlConnectionStringBuilder.Encrypt de bool a SqlConnectionEncryptOption.
  • Se movieron los tipos de tiempo de ejecución de lenguaje común (CLR) de SQL Server al paquete versionado Microsoft.SqlServer.Server por separado.
  • Opciones añadidas Server SPN y Failover Server SPN de conexión.
  • Se añadió compatibilidad con alias de SQL Server en Windows en la versión actual de .NET.
  • Se ha añadido SqlDataSourceEnumerator en Windows.
  • Eliminé .NET Framework 4.6.1.

Importante

El SqlConnectionStringBuilder.Encrypt cambio de tipo es una ruptura binaria. Los tipos eliminados de Microsoft.Data.SqlClient.Server también requieren cambios de fuente para poder usar Microsoft.SqlServer.Server. Recompila aplicaciones y bibliotecas, actualiza los espacios de nombres y comprueba conflictos de espacios de nombres cuando System.Data.SqlClient permanezca referenciado.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
5.0.0 Agosto de 2022 Versión de disponibilidad general.
5.0.1 Octubre de 2022 Restaurado HostNameInCertificate en .NET Framework y solucionado bloqueos de atención, SqlConnectionStringBuilder.Encryptregistro de cancelación, bloqueos SNI gestionados, clasificación UTF-8 y un fallo SNI en el dominio de aplicación.
5.0.2 Marzo de 2023 Se solucionaron fugas de memoria en la lectura asíncrona, errores del modo de redirección TransactionScope, errores de Always Encrypted, errores de RPC de TDS en consultas grandes e interbloqueos en transacciones distribuidas.

4.1

La versión 4.1 alcanzó disponibilidad general en enero de 2022. El parche final fue la 4.1.1, lanzada en septiembre de 2022.

  • Añadido Attestation Protocol=None para enclaves de seguridad basada en virtualización (VBS).
  • Solicitudes del protocolo de resolución paralelizada de SQL Server en Linux y macOS cuando MultiSubnetFailover está habilitado.
  • Revisión fija de la lista de revocación de certificados durante la autenticación.
  • Se corrigieron la autenticación de Microsoft Entra, los valores nulos SqlBinary y rowversion, y el comportamiento de la intercalación UTF-8.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
4.1.0 Enero de 2022 Versión de disponibilidad general.
4.1.1 Septiembre de 2022 Se corrigieron fallos en la lista de revocación de certificados, se paralelizaron las solicitudes del SQL Server Resolution Protocol para MultiSubnetFailover, y se corrigieron fallos de autenticación Microsoft Entra, rowversion, UTF-8 y SNI en el dominio de aplicación.

4.0

La versión 4.0 alcanzó disponibilidad general en noviembre de 2021. El parche final fue la 4.0.6, lanzada en agosto de 2024.

  • Cambió el valor por defecto de Encrypt de de false a true.
  • Añadido SqlCommand.EnableOptimizedParameterBinding para comandos con muchos parámetros.
  • Añadido SqlFileStream para Windows mediante la implementación del estándar .NET.
  • Se añadió soporte compartido para instancias LocalDB en SNI gestionado.
  • Añadido GetFieldValue<T> y GetFieldValueAsync<T> para XmlReader, TextReader, y Stream.
  • Se eliminó el interruptor de seguridad de la lógica de reintentos configurable. Retry permanecía deshabilitado hasta que una aplicación configuraba un proveedor.
  • Se cambiaron los errores de autenticación de Microsoft Entra para que generen SqlException en lugar de AggregateException.
  • Eliminé .NET Core 2.1.
  • La versión 4.0.5 corrigió la ruta de degradación de cifrado CVE-2024-0056 y la validación de la cadena de certificados.

Importante

Como el cifrado es true por defecto en versiones 4.0 y posteriores, una actualización puede exponer discrepancias en la confianza de certificados o en nombres de servidor. No desactives el cifrado para evitar estos errores. Instala un certificado de servidor de confianza o configura la validación del certificado para el despliegue.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
4.0.0 Noviembre de 2021 Versión de disponibilidad general.
4.0.1 Enero de 2022 Se añadieron SuppressInsecureTLSWarning y se corrigieron Kerberos en .NET 6, los nombres de tubería de LocalDB y las consultas simultáneas a enclaves.
4.0.2 Septiembre de 2022 Se corrigieron fallos en la lista de revocación de certificados, se paralelizaron las solicitudes del SQL Server Resolution Protocol para MultiSubnetFailover, y se corrigieron fallos de autenticación Microsoft Entra, rowversion, UTF-8 y SNI en el dominio de aplicación.
4.0.3 abril de 2023 Se redujo la restricción de tokens para cuentas en caché y se corrigieron los errores de RPC de TDS en consultas grandes.
4.0.4 Octubre de 2023 Se corrigieron los reintentos asíncronos de enclave, la conmutación por error de LocalDB y de SNI administrado, las versiones de los archivos y la correlación de la actividad de conexión.
4.0.5 Enero de 2024 Se corrigieron CVE-2024-0056 y la validación de la cadena de certificados.
4.0.6 Agosto de 2024 Limpieza fija de eventos de transacción antes de agrupar y ActiveDirectoryAuthenticationProvider.AcquireTokenAsync gestionar el tiempo de espera.

3.1

La versión 3.1 alcanzó disponibilidad general en marzo de 2022. El parche final fue la 3.1.7, lanzada en agosto de 2024.

  • Se ha añadido Attestation Protocol=None para enclaves de VBS.
  • Se añadieron los errores SQL 42108 y 42109 a la lista predeterminada de errores transitorios.
  • Se añadió soporte para Windows ARM64 para .NET Framework en la versión 3.1.2.
  • Se redujeron las solicitudes repetidas de tokens Microsoft Entra mediante la adquisición silenciosa de tokens en la versión 3.1.3.
  • Corregido la ruta de descenso de cifrado CVE-2024-0056 en la versión 3.1.5.
  • Se corrigió la limpieza de transacciones antes de la agrupación y la gestión del tiempo de espera del token de Microsoft Entra en la versión 3.1.7.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
3.1.0 Marzo de 2022 Versión de disponibilidad general.
3.1.1 Agosto de 2022 Se corrigieron los valores NULL de SqlBinaryrowversion, los fallos de Kerberos en .NET 6 y los errores de referencia nula en la autenticación de Microsoft Entra.
3.1.2 Febrero de 2023 Se añadió soporte para Windows ARM64 del Framework .NET y se corrigió la seguridad de hilos por lista de reintentos, bloqueos de transacciones distribuidas, clasificación UTF-8 y validación de procedimientos almacenados.
3.1.3 Marzo de 2023 Se redujo la limitación de frecuencia de tokens de Microsoft Entra con AcquireTokenSilent y se corrigieron los errores de RPC de TDS en consultas grandes.
3.1.4 Octubre de 2023 Enclaves asíncronos fijos, respaldo de LocalDB y SNI gestionado, versiones de archivos, correlación de actividad de conexión y formato EventSource.
3.1.5 Enero de 2024 Se ha corregido la CVE-2024-0056 y la validación de cadenas de certificados.
3.1.6 Agosto de 2024 Este paquete no estaba firmado correctamente y no estaba listado. No existe ningún archivo de notas de lanzamiento aguas arriba. Usa la 3.1.7 en su lugar.
3.1.7 Agosto de 2024 Limpieza fija de eventos de transacción antes del pooling, tiempos de espera de autenticación, firma de ensamblador y un fallo del dominio de aplicación SNI.

3.0

La versión 3.0 alcanzó disponibilidad general en junio de 2021. El parche final fue la 3.0.1, lanzado en septiembre de 2021.

  • Se añadió lógica de reintentos configurable para operaciones de conexión y comandos. En la versión 3.0, siguió siendo opcional tras Switch.Microsoft.Data.SqlClient.EnableRetryLogic.
  • Se añadieron Contadores de Eventos para la actividad de conexión y pool.
  • Se ha añadido autenticación mediante Active Directory Default a través de Azure.Identity.
  • Se añadió el registro de proveedor de almacenamiento de claves Always Encrypted con alcance de conexión y comando.
  • Se añadió la preferencia de dirección IP TCP.
  • Se cambió la autenticación de identidad gestionada asignada por el usuario para usar el ID del cliente en lugar del ID del objeto en User Id.
  • Se cambiaron los valores nulos de SQL rowversion para que devolvieran DBNull en lugar de una matriz de bytes vacía. Un interruptor AppContext conservaba el comportamiento antiguo.
  • Se ha subido el objetivo mínimo del Framework .NET de 4.6 a 4.6.1.

Los proveedores de almacenamiento de claves del sistema tienen prioridad sobre los proveedores registrados en una conexión o comando a partir de la versión 3.0. Cambia el nombre a un proveedor personalizado si su nombre entra en conflicto con el de un proveedor ya establecido.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
3.0.0 Junio de 2021 Versión de disponibilidad general.
3.0.1 Septiembre de 2021 Se corrigieron las aperturas bloqueantes de conexiones de Microsoft Entra, el estado de promoción de transacciones, el cifrado obligatorio, la recursión en los reintentos, los interbloqueos y las conexiones inutilizables.

2.1

La versión 2.1 alcanzó disponibilidad general en noviembre de 2020. El parche final fue la 2.1.7, lanzado en enero de 2024.

  • Extendido Siempre Cifrado a plataformas .NET Standard 2.0 compatibles.
  • Se añadió compatibilidad con enclaves seguros en Unix para .NET Core y en todas las plataformas compatibles con .NET Standard 2.1.
  • Añadimos y gestionamos Active Directory Device Code Flow la autenticación de identidad.
  • Se añadieron ganchos de personalización para autenticación interactiva y de código de dispositivo.
  • Se añadieron metadatos de rango de clasificación de sensibilidad.
  • Se agregó SqlConnection.ServerProcessId.
  • He añadido la Command Timeout opción de conexión como predeterminada para los comandos creados por una conexión.
  • La versión 2.1.7 corrigió la vía de degradación del cifrado CVE-2024-0056.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
2.1.0 Noviembre de 2020 Versión de disponibilidad general.
2.1.1 Diciembre de 2020 Se corrigió la identidad administrada asignada por el sistema en Azure Functions, Kerberos de Unix y keep-alive de TCP.
2.1.2 Marzo de 2021 Se corrigieron las instancias con nombre de Unix, los resultados incorrectos por tiempo de espera, el procesamiento no seguro de DTD, los SPN de Kerberos, las dependencias de caché ausentes, el seguimiento y las cabeceras MARS.
2.1.3 Mayo de 2021 Se evitó la corrupción de datos de transacciones con conjuntos de resultados abiertos y se corrigió una condición de carrera entre SinglePhaseCommit y TransactionEnded.
2.1.4 Septiembre de 2021 Conexiones aseguradas fallan cuando se requiere cifrado y conexiones fijas entran en un estado inutilizable.
2.1.5 Agosto de 2022 Se añadió la validación de la longitud de los procedimientos almacenados CommandText y se corrigió la autenticación de Kerberos de .NET 6 y SqlTypeWorkarounds.
2.1.6 abril de 2023 Se corrigieron fallos de TDS RPC de gran consulta en SqlCommand.ExecuteReaderAsync, conflictos de clasificación por defecto en UTF-8 y bloqueos de envío de atención.
2.1.7 Enero de 2024 Se ha corregido la CVE-2024-0056 y la validación de cadenas de certificados.

2.0

La versión 2.0 alcanzó disponibilidad general en junio de 2020. El parche final fue la 2.0.1, lanzado en agosto de 2020.

  • Se añadió la autenticación Active Directory Interactive y Active Directory Integrated en .NET Core y .NET Standard.
  • Se ha añadido autenticación Active Directory Service Principal.
  • Se añadió Microsoft.Data.SqlClient.EventSource seguimiento.
  • Se añadió keep-alive de TCP multiplataforma y una implementación administrada de red opcional en Windows para pruebas y depuración. La ruta gestionada no admitía la autenticación de Windows que no pertenecía a un dominio.
  • Añadí SqlBulkCopy.RowsCopied y pedí pistas en copia masiva.
  • Se agregó SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry).
  • Se añadió soporte para Windows ARM a través de la Microsoft.Data.SqlClient.SNI.runtime dependencia.
  • Comenzó a validar el certificado del servidor cuando un servidor fuerza el cifrado, incluso cuando la cadena de conexión establece Encrypt=false. Las conexiones pueden fallar tras esta actualización si el certificado no es confiable o su nombre no coincide con el servidor.
  • Cambié la gestión de escala de parámetros decimales para usar redondeos compatibles con SQL Server.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
2.0.0 Junio de 2020 Versión de disponibilidad general.
2.0.1 Agosto de 2020 Se añadió una configuración de autenticación compatible con la coexistencia y se corrigieron los errores de expiración de tokens agrupados, manejo de fallos transitorios, caché de enclave y errores nativos de preinicio de sesión SNI.

1.1

La versión 1.1 alcanzó disponibilidad general en noviembre de 2019. El parche final fue la 1.1.4, lanzado en marzo de 2021.

  • Se añadió Always Encrypted con enclaves seguros en las plataformas de destino compatibles de .NET Framework y .NET Core.
  • Se ha agregado la expansión de |DataDirectory| en AttachDBFilename en .NET Core.
  • Lecturas asíncronas mejoradas con caché multipaquete del búfer de destino.
  • Se ha reducido la sobrecarga de las instantáneas en TdsParserStateObject y SqlDataReader.
  • Se corrigieron errores de encabezado del estado de tiempo de espera y de Multiple Active Result Sets (MARS) en parches posteriores.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
1.1.0 Noviembre de 2019 Versión de disponibilidad general.
1.1.1 Febrero de 2020 Se revirtieron cambios asíncronos SNIPacket que causaban bloqueos y corrigieron el rango de dependencia SNI.
1.1.2 Abril de 2020 Se añadieron nombres de usuario para la autenticación interactiva de Active Directory y se corrigieron la persistencia de contraseñas y los encabezados TDS de MARS.
1.1.3 Mayo de 2020 Se evitó que las transacciones abortadas asociaran conexiones agrupadas y se revirtió la corrección regresiva del encabezado MARS.
1.1.4 Marzo de 2021 Se corrigieron los resultados incorrectos del estado de tiempo de espera y los errores del encabezado MARS en .NET Framework 4.8 y versiones posteriores.

1.0

Microsoft. Data.SqlClient 1.0 alcanzó disponibilidad general en agosto de 2019. El parche final fue 1.0.19269.1, lanzado en septiembre de 2019.

  • Se introdujo el proveedor Microsoft.Data.SqlClient distribuido por separado.
  • Era compatible con .NET Framework 4.6 y versiones posteriores, .NET Core 2.1 y versiones posteriores, y .NET Standard 2.0.
  • Se añadió la autenticación Active Directory Interactive en .NET Framework.
  • Se agregó la autenticación Active Directory Password en .NET Core.
  • Se añadieron metadatos de clasificación de sensibilidad de datos en SqlDataReader.
  • Se ha añadido soporte para la clasificación UTF-8 de SQL Server 2019.
  • Se agregó compatibilidad con Always Encrypted en .NET Core.

Lanzamientos

Versión Publicado Cambios relevantes para el cliente
1.0.19239.1 Agosto de 2019 Versión de disponibilidad general. Reutilización fija de conexiones tras fallos de transacciones, publicación de SNI, manejo invariante a la globalización y ampliación nula de copia masiva.
1.0.19249.1 Septiembre de 2019 Se corrigieron las lecturas de datos multipaquete de gran tamaño en Unix.
1.0.19269.1 Septiembre de 2019 Se ha restaurado SqlCommand.StatementCompleted, se ha añadido el SqlConnectionStringBuilder.Authentication que faltaba y se ha revertido un cambio incompatible en la API SqlAuthenticationParameters.Resource.

Para una aplicación que se mueve del proveedor antiguo, usa Migrar de System.Data.SqlClient a Microsoft. Data.SqlClient en lugar de leer solo las notas de versión.

Notas opcionales de lanzamiento del paquete

Los paquetes opcionales tienen sus propias notas de lanzamiento. A partir de la versión 7.0.2, se distribuyen en la misma versión que el controlador principal.

Package Notas de lanzamiento
Microsoft.Data.SqlClient.Extensions.Azure Notas de versión de la extensión Azure
Microsoft.Data.SqlClient.Extensions.Abstractions Notas de la versión de abstracciones de extensiones
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Notas de la versión de Azure Key Vault Provider

No hagas referencia a Microsoft.Data.SqlClient.Internal.Logging directamente. Es una dependencia interna compartida por los paquetes de controladores.

Evalúa una actualización

  1. Identifica cada controlador y cada versión opcional del paquete utilizada directa o de forma transitiva.
  2. Lee las notas de lanzamiento de todas las versiones menores y mayores que se crucen con la actualización.
  3. Comprueba el ciclo de vida de soporte del controlador SqlClient para consultar el marco de destino y la compatibilidad de la base de datos.
  4. Actualiza todos los paquetes relacionados a versiones compatibles.
  5. Compila y prueba la autenticación, cifrado, agrupación de conexiones, parámetros, transacciones, intentos, diagnósticos y salida de despliegue de la aplicación.

Para comandos de instalación y despliegue, consulte Instalar, actualizar y desplegar Microsoft. Data.SqlClient.