Microsoft.Data.SqlClient 中的新增功能

Microsoft.Data.SqlClient 独立于 .NET 单独发布。 本文总结了每个发布系列中的重要特性、行为变化和兼容性变化。 发布表格包含所有已发布的稳定包,包括每一次热修复和未列出包。 关于每一次修复和依赖更新,请查看 SqlClient 仓库中的完整发布说明。

当前版本

发布系列 最新版本 发行日期 Support
7.1 7.1.0 2026 年 9 月 标准期限支持(STS)
7.0 7.0.3 2026 年 9 月 标准期限支持(STS)
6.1 6.1.7 2026 年 9 月 长期支持 (LTS)

不要在生产环境中使用预览版。 预览API和行为可以在正式发布(GA)之前发生变化。

发布表和一般可用性摘要使用 NuGet 发布月份。 生命周期文章列出了官方发布日期,但发布日期可能有所不同。 关于支持窗口,请参见 SqlClient 驱动支持生命周期。

7.1 STS

7.1版本于2026年9月正式发布。 这是目前的STS系列。

功能与变化

  • SqlBatch 对 .NET Framework 的支持。
  • 异步 SqlConnection.GetSchemaAsync 过载。
  • 通过 SqlConnection.RegisteredApplication 和第 2 版 TDS USERAGENT 负载进行应用身份报告。 在打开连接前先设置属性。 该值不属于连接池密钥,因此重复使用的物理连接会显示最初创建它的应用程序。 应用身份是客户端提供的遥测数据,而非授权或其他安全决策的依据。
  • 连接字符串别名,如 ColumnEncryption、ConnectTimeout、FailoverPartner、PacketSize 和 WorkstationId。
  • SqlBulkCopy 中 $node_id、$edge_id、$from_id 和 $to_id 的 SQL Graph 伪列映射。
  • 由 SqlConnection.GetSchema 返回的 DataTypes 集合中的 SQL Server json 类型,在 Azure SQL 上包含。
  • 通过 Switch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior=false 进行 Opt-in Connection Idle Timeout 强制执行。 默认的空闲超时为 300 秒;0 将禁用空闲过期。 默认的池化行为保持不变。
  • 一种可选启用的连接超时模式,包括通过 Switch.Microsoft.Data.SqlClient.UseOverallConnectTimeoutForPoolWait=true等待获取池化连接所花费的时间。 开关默认为 false。
  • 扩展了事务支持、断裂连接恢复、池预热、空闲剪枝、泄漏连接恢复以及连接池 V2 中的诊断功能。 该池仍在评估中,需要 Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2。
  • Always Encrypted 密钥存储提供程序上的异步方法。 驱动程序在命令执行时还不会调用这些方法,所以它们不会让现有的“始终加密”操作变成异步。
  • 已将原生 SNI 包更新至 7.1.0。 支持的应用目标仍为 .NET Framework 4.6.2 及更高版本,以及 .NET 8 及更高版本。

兼容性变化

  • SqlConnectionStringBuilder.TransparentNetworkIPResolution在 .NET 框架中已经过时。 改用 MultiSubnetFailover。 这一更改增加了编译时警告;但不会改变运行时行为或任一选项的默认设置。
  • 接受 SqlBatchCommand.CommandBehavior 和传递到 SqlBatch.ExecuteReader 的 CommandBehavior。 早期版本忽略了这些设置。
  • 现在,当您打开连接时,过时的 Type System Version=SQL Server 2000 连接选项会抛出 ArgumentException。 使用受支持的值,如 Latest。

版本 7.1 还包含 6.1.7 和 7.0.3 中提供的证书和 enclave 验证修复。 当你在托管SNI上启用证书验证时, ServerCertificate 会将配置好的证书文件与服务器提供的证书进行比较。 无效或无法读取的文件会使连接失败,而不是绕过配置好的证书检查。 虚拟安全模式(VSM)和主机守护服务(HGS)的 enclave 证明验证 enclave 公钥已绑定到已签名的证明报告中。 当你从未包含这些修复的早期版本升级时,重新测试这些路径。

关键修复

  • 修复了回滚后 TransactionScope 仍断开的池连接,可能导致后续 BeginTransaction() 调用失败。
  • 在托管 SNI 中,修复了通过命名管道使用 IPv6 字面量服务器名称的问题。
  • 修复了具有显式精度和小数位数的大 decimal 参数溢出、DateOnly 参数和使用 sql_variant 的表值参数,以及在 IsDBNull() 后被跳过的流列数据。
  • 修复了连接池计数器、不必要的池维护定时器活动,以及连接池 V2 的开闭吞吐量回归。
  • 修复了可配置的重试逻辑,该逻辑会在现代 .NET 上注册一个永久的、全进程的汇编解析处理程序。 自定义重试程序集必须位于应用基目录中;在提供者构建后加载的依赖必须通过正常的应用依赖解析或应用程序提供的处理程序来解析。

发布

版本 已释放 客户相关变更
7.1.0 2026 年 9 月 正式发布,包括7.1预览周期以来的累积变更。

Important

将直接引用的伴随包与核心驱动程序一同升级到 7.1.0,包括 Microsoft.Data.SqlClient.Extensions.Azure、Microsoft.Data.SqlClient.Extensions.Abstractions 和 Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider。 允许以传递方式解析 Microsoft.Data.SqlClient.Internal.Logging。 一致的程序集会保留 AssemblyVersion 7.0.0.0,因此从 7.0.2 或 7.0.3 更新无需新的 .NET Framework 绑定重定向。 当你从 7.0.0 或 7.0.1 更新时,请查看 7.0.2 版本说明中描述的一次性程序集版本变更。

Azure 密钥保管库 Provider 7.1.0 版本实现了异步密钥存储提供者方法,并修复了缓存增长和并发下的重复密钥客户端问题。 这些异步方法有利于直接提供程序调用;驱动程序的命令执行路径仍使用同步关键操作。 Azure 扩展和扩展抽象发布保持版本一致,不更改公共 API。

关于预览历史,请参阅 预览1、 预览2和 预览3的发布说明。

7.0 STS

7.0版本于2026年3月正式发布。 该版本将持续支持至2026年12月17日,即7.1版本发布三个月后。

功能与变化

  • 驱动程序提供的 Microsoft Entra 认证从核心包迁移到 Microsoft.Data.SqlClient.Extensions.Azure. 使用 Active Directory 认证模式时添加扩展包。
  • 核心包不再依赖 Azure.Core、Azure.Identity 或 Microsoft 身份验证库(MSAL)。
  • SqlConnection.SspiContextProvider 支持对 Kerberos 和 NTLM 令牌进行自定义协商。 提供者身份是连接池密钥的一部分。
  • 系统会自动协商 Azure SQL 超大规模和命名只读副本的增强路由。
  • 强类型命令、连接和事务诊断事件可在 .NET 框架和当前的 .NET 中获得。
  • SqlConfigurableRetryFactory.BaselineTransientErrors 暴露驱动程序默认的瞬态错误列表。
  • Active Directory Password 认证已经过时。 对用户应用使用交互式认证,服务使用服务主体认证,或对Azure托管工作负载使用管理身份认证。
  • 目标支持始于 .NET Framework 4.6.2 和 .NET 8。 该驱动还支持在 .NET 10 上构建和运行。

异步读取的数据包复用仍保留在预览功能中,并在7.0中是可选的。 测试与生产工作负载的兼容性切换,并保持回滚路径。

发布

版本 已释放 客户相关变更
7.0.0 2026 年 3 月 正式发布。
7.0.1 2026 年 4 月 修复了适用于 SQL Server 2016 和 Azure Synapse Analytics 专用 SQL 池的 SqlBulkCopy 元数据查询,更正了向量字段元数据,添加了缺失的 .NET Framework System.Data.Common 依赖项,并为身份验证抽象添加了类型转发。
7.0.2 2026 年 6 月 统一了核心驱动程序和配套包,强化了 TDS 令牌解析,更正了 Always Encrypted 签名验证缓存的处理,并修复了取消操作以及空缓冲区 GetBytes 和 GetChars 调用中的错误。
7.0.3 2026 年 9 月 SNI更新为6.0.3。 修复了SqlBulkCopy元数据访问、跟踪分配、ServerCertificate托管 SNI 上的验证、始终加密的安全区域证明密钥验证、AccessTokenCallback.NET Framework 上的 TNIR 默认值、身份验证状态保留以及可配置的重试程序集解析。 冲突的 SSPI 和令牌认证设置现在会引发 InvalidOperationException 异常。 一致的 Azure 扩展修复 Dataverse 和 Dynamics 365 连接的 Entra 颁发机构解析。

Important

自 7.0.2 版本起,将对 Microsoft.Data.SqlClient、Microsoft.Data.SqlClient.Extensions.Azure、Microsoft.Data.SqlClient.Extensions.Abstractions 和 Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 的直接引用保持一致。 允许以传递方式解析 Microsoft.Data.SqlClient.Internal.Logging。 在 .NET Framework 上,Extensions.Azure、Extensions.Abstractions 和 Internal.Logging 的程序集版本已从 7.0.0.0 更改为 1.0.0.0。 更新这些软件包后,请重新生成应用程序或添加绑定重定向。

6.1 LTS

6.1.0 版本于 2025 年 7 月发布,但随后因严重的回归问题而被下架。 6.1.1 版本于 2025 年 8 月发布,建立了支持 6.1 LTS 系列。

功能与变化

  • 通过 SqlVector<T> 原生传输 SQL Server 2025 向量,最初支持单精度浮点向量。
  • 一个用于库兼容性的 .NET 标准 2.0 参考资产。 这个资产不是运行时实现。 可执行应用程序必须使用支持的 .NET 或 .NET Framework 运行时资产。
  • 选择性启用适用于大型异步读取的数据包多路复用功能,以及 Microsoft Fabric 中 SQL 数据库的终结点处理功能。
  • 改进了对原生预先编译(AOT)的支持。
  • 减少连接和TDS处理路径的分配。
  • 为7.0版本中新增的公共安全支持提供者接口(SSPI)可扩展性进行了内部基础建设。

不要部署6.1.0版本。 6.1.1 版本撤销了与受影响数据包检测和重放有关的更改。

发布

版本 已释放 客户相关变更
6.1.0 2025 年 7 月 正式发布。 该软件包因存在严重回归问题而已取消列出。 不要使用它。
6.1.1 2025 年 8 月 回退了 6.1.0 版本中部分数据包检测、修正和重放的更改。 修正向量参考组件和 SqlVector<T>.Null。
6.1.2 2025 年 10 月 修复了性能计数器过早初始化、自定义身份验证提供程序替换,以及导致无法使用所配置最大池大小的池并发问题。
6.1.3 2025 年 11 月 为基本可用性组和自定义端口添加了 IgnoreServerProvidedFailoverPartner。 修正了早期EventSource指标初始化。
6.1.4 2026 年 1 月 已添加 EnableMultiSubnetFailoverByDefault。 修复了 SqlDataAdapter 批处理失败以及连接池指标中活跃连接数为负的问题。
6.1.5 2026 年 4 月 移除了非集成身份验证中不必要的服务主体名称(SPN)和域名系统(DNS)处理,使 ExecuteScalar 能够传播在数据之后返回的服务器错误,并更正了向量元数据类型。
6.1.6 2026 年 6 月 增加了对 Windows Web 帐户管理器(WAM)代理的可选支持,强化了 TDS 令牌解析,纠正了缓存的列主密钥签名验证失败问题,并修复了 GetChars 参数验证问题。
6.1.7 2026 年 9 月 SNI更新为6.0.3。 修复了托管 SNI 上的 ServerCertificate 验证、Always Encrypted enclave 证明密钥验证、.NET Framework 上的 AccessTokenCallback TNIR 默认设置、连接池密钥中的令牌身份验证状态、基于回调的预登录证书验证,以及可配置的重试程序集解析。

以前的发布系列

以下发布系列不再受支持。 当您计划跨多个驱动程序版本进行升级时,请使用这些摘要。

6.0

6.0版本于2025年1月正式发布。 最终补丁是6.0.5,于2026年1月发布。

  • 通过 Microsoft.Data.SqlTypes.SqlJson 新增了对 SQL Server JSON 的原生支持,包括读取、写入、流式处理和批量复制。
  • 新增了用于命令、连接和事务事件的公开强类型诊断负载。
  • 添加 OpenAsync(SqlConnectionOverrides, CancellationToken),包括 OpenWithoutRetry。
  • 在DataTable和SqlDataRecord结构化参数中添加了对DateOnly和TimeOnly的支持。
  • 增加了 .NET 9 支持。
  • 放弃了 .NET Standard 和 .NET 6 运行时资源。 支持的目标包括 .NET Framework 4.6.2 及以后版本以及 .NET 8 及以后版本。
  • 将 EnableOptimizedParameterBinding 限制为文本命令。

发布

版本 已释放 客户相关变更
6.0.0 2025 年 1 月 正式发布。 这个软件包在NuGet上未公开,上游的注释也没有说明原因。
6.0.1 2025 年 1 月 已更正 SqlClientDiagnostic 参考 API、低版本 TLS 警告和依赖项。
6.0.2 2025 年 4 月 修复了可能出现的套接字接收 null 故障、SqlJson 引用 API、JSON 输出参数和依赖项问题。
6.0.3 2025 年 10 月 防止自定义身份验证提供程序被替换,并修复了未充分利用 Max Pool Size 的池并发问题。
6.0.4 2025 年 11 月 为使用自定义TCP端口的基础可用性组添加 Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner 。
6.0.5 2026 年 1 月 修复了 SqlDataAdapter 批量 RPC 的空值处理,新增了 Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault,并更新了依赖。

5.2

5.2版本于2024年2月正式发布。 最终补丁是5.2.3,于2025年4月发布。

  • 新增 SqlConnection.AccessTokenCallback 用于异步、兼容池的令牌获取。
  • 已在 .NET 6 及更高版本中添加 SqlBatch 和 SqlBatchCommand。
  • 新增了对 .NET Standard 上 SqlDiagnosticListener 的支持。
  • 新增了 64 位SqlBulkCopy.RowsCopied64。 较早 RowsCopied 的属性仍然是32位整数。
  • 新增了 Active Directory Workload Identity 身份验证。
  • 新增了 .NET 8 和对大端平台的支持。
  • 默认改 UseOneSecFloorInTimeoutCalculationDuringLogin 为 true。
  • 在 .NET 7 及更高版本上使用 NegotiateAuthentication 实现托管 SSPI。

发布

版本 已释放 客户相关变更
5.2.0 2024 年 2 月 正式发布。
5.2.1 2024 年 5 月 修复了带端口的 Linux 命名实例连接、FireInfoMessageEventOnUserErrors、datetimeoffset(n) 表值参数、延迟的 OpenAsync,以及 SqlConnection.Clone()对 AccessTokenCallback 的保留问题。
5.2.2 2024 年 8 月 修复了令牌超时、托管 SNI 套接字连接、程序集目标设定、SSPI 重试、用户定义类型的读取以及加密读取器数据相关问题。 已更新针对 CVE-2024-35255 的标识包。
5.2.3 2025 年 4 月 修复了套接字接收时可能出现的空值失败和引用程序集不一致的问题,允许使用负的瞬态错误编号,并更新了依赖项。

5.1

5.1版本于2023年1月正式发布。 最终补丁是5.1.9,于2026年1月发布。

  • 增加了.NET 6支持,放弃了.NET Core 3.1。
  • 新增 DateOnly 和 TimeOnly 支持参数值和 GetFieldValue。
  • 新增了 .NET 中的 TLS 1.3 和原生 SQL Server 网络接口(SNI)路径。
  • 添加了ServerCertificate,以便与Encrypt=Mandatory和Encrypt=Strict进行精确证书匹配。
  • 增加了Windows ARM64对.NET框架的支持。
  • 将 SqlConnectionEncryptOption 字符串解析器设为公共。
  • 版本5.1.3修复了CVE-2024-0056加密降级路径和证书链验证。

发布

版本 已释放 客户相关变更
5.1.0 2023 年 1 月 正式发布。
5.1.1 2023 年 3 月 修复了 Always Encrypted 错误报告、重定向模式事务、令牌限制、大型查询的 TDS RPC 失败以及 GetBytesAsync null 处理方面的问题。
5.1.2 2023 年 10 月 修复了 SQL Express 用户实例、安全区域重试、LocalDB、连接字符串生成器值、SqlConnectionEncryptOption 配置转换以及 OpenAsync 瞬态故障。
5.1.3 2024 年 1 月 修复了CVE-2024-0056和证书链验证。
5.1.4 2024 年 1 月 修复了 .NET 分布式事务死锁,并升级了 Azure.Identity,以修复 CVE-2023-36414。
5.1.5 2024 年 1 月 修复了连接池化前的事务清理问题,以及“始终加密”中的日期和时间转换失败问题。 已更新 IdentityModel 依赖项,以修复 CVE-2024-21319。
5.1.6 2024 年 8 月 修复了 OpenAsync、身份验证超时以及加密读卡器待处理数据故障。 更新了与 CVE-2024-35255 和已缓存的 TokenCredential 实例相关的标识依赖项。
5.1.7 2025 年 4 月 修复了套接字接收时可能出现的空值故障,使源程序集与引用程序集保持一致,并更新了依赖项。
5.1.8 2025 年 11 月 添加了 Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner,修复了批量复制中的 UTF-8 字节顺序标记处理,改进了 MSAL 创建方式,并更新了依赖项。
5.1.9 2026 年 1 月 将 SqlStatistics 时序移至 Environment.TickCount,并更新了特定于框架的依赖项。

5.0

5.0版本于2022年8月正式发布。 最终补丁是5.0.2,于2023年3月发布。

  • 通过 Encrypt=Strict 新增了 TDS 8.0。 严格模式在TDS登录交换前启动TLS,并且始终验证服务器证书。
  • SqlConnectionStringBuilder.Encrypt从bool改为 SqlConnectionEncryptOption。
  • 将 SQL Server 的通用语言运行时(CLR)类型迁移到单独版本化Microsoft.SqlServer.Server的包中。
  • 新增 Server SPN 和 Failover Server SPN 连接选项。
  • 在当前.NET中增加了Windows SQL Server别名支持。
  • 新增SqlDataSourceEnumerator于 Windows。
  • 放弃了 .NET Framework 4.6.1。

Important

SqlConnectionStringBuilder.Encrypt 类型更改会破坏二进制兼容性。 被移除的 Microsoft.Data.SqlClient.Server 类型也需要更改源代码才能使用 Microsoft.SqlServer.Server。 重新编译应用程序和库,更新命名空间,并在System.Data.SqlClient仍被引用时检查是否存在命名空间冲突。

发布

版本 已释放 客户相关变更
5.0.0 2022 年 8 月 正式发布。
5.0.1 2022 年 10 月 在 .NET Framework 上还原了 HostNameInCertificate,并修复了 attention 死锁、SqlConnectionStringBuilder.Encrypt、取消操作注册、托管 SNI 挂起、UTF-8 排序规则以及 SNI 应用程序域崩溃问题。
5.0.2 2023 年 3 月 修复了异步读取时的内存泄漏、重定向模式 TransactionScope 相关问题、Always Encrypted 错误、大型查询导致的 TDS RPC 失败以及分布式事务死锁。

4.1

4.1版本于2022年1月正式发布。 最终补丁是4.1.1,于2022年9月发布。

  • 为基于虚拟化的安全(VBS)隔离区新增了 Attestation Protocol=None。
  • 在 Linux 和 macOS 上,启用 MultiSubnetFailover 时,并行化 SQL Server 解析协议请求。
  • 修复了身份验证期间证书吊销列表检查的问题。
  • 修正了 Microsoft Entra 认证、null SqlBinary 和 rowversion 值,以及 UTF-8 的整合行为。

发布

版本 已释放 客户相关变更
4.1.0 2022 年 1 月 正式发布。
4.1.1 2022 年 9 月 修复了证书吊销列表相关故障,将针对 MultiSubnetFailover 的 SQL Server 解析协议请求并行化,并修复了 Microsoft Entra 身份验证、rowversion、UTF-8 和 SNI 应用程序域相关故障。

4.0

4.0版本于2021年11月正式发布。 最终补丁是4.0.6,于2024年8月发布。

  • 将默认Encryptfalse值从 改为 true。
  • 新增 SqlCommand.EnableOptimizedParameterBinding 用于参数众多的命令。
  • 通过 .NET Standard 实现,为 Windows 添加了 SqlFileStream。
  • 在托管SNI中增加了共享LocalDB实例支持。
  • 为XmlReader、TextReader和Stream添加了GetFieldValue<T>和GetFieldValueAsync<T>。
  • 从可配置重试逻辑中移除了安全开关。 重试一直被禁用,直到应用程序配置了提供者。
  • 将 Microsoft Entra 身份验证失败改为引发 SqlException,而不是 AggregateException。
  • 放弃了.NET Core 2.1。
  • 4.0.5版本修复了CVE-2024-0056加密降级路径和证书链验证问题。

Important

由于加密默认 true 在4.0及更高版本中,升级可能会暴露证书信任或服务器名称不匹配的问题。 不要关闭加密来绕过这些错误。 安装可信服务器证书或配置部署中的证书验证。

发布

版本 已释放 客户相关变更
4.0.0 2021 年 11 月 正式发布。
4.0.1 2022 年 1 月 添加了 SuppressInsecureTLSWarning,并修复了 .NET 6 Kerberos、LocalDB 管道名称和并发 enclave 查询问题。
4.0.2 2022 年 9 月 修复了证书吊销列表相关故障,将针对 MultiSubnetFailover 的 SQL Server 解析协议请求并行化,并修复了 Microsoft Entra 身份验证、rowversion、UTF-8 和 SNI 应用程序域相关故障。
4.0.3 2023 年 4 月 降低了对缓存帐户令牌的限制,并修复了与大型查询相关的 TDS RPC 失败问题。
4.0.4 2023 年 10 月 修复了异步 enclave 重试、LocalDB 和托管 SNI 回退、文件版本以及连接活动关联问题。
4.0.5 2024 年 1 月 修复了CVE-2024-0056和证书链验证。
4.0.6 2024 年 8 月 修复了池化前的事务事件清理和 ActiveDirectoryAuthenticationProvider.AcquireTokenAsync 超时处理问题。

3.1

3.1版本于2022年3月正式发布。 最终补丁是3.1.7,于2024年8月发布。

  • 为 VBS 飞地添加了 Attestation Protocol=None。
  • 将 SQL 错误 42108 和 42109 添加到默认瞬态错误列表。
  • 在 3.1.2 中增加了 Windows ARM64 对 .NET Framework 的支持。
  • 在3.1.3版本中,通过静默令牌获取减少了重复的Microsoft Entra令牌请求。
  • 已修复 3.1.5 版本中 CVE-2024-0056 加密降级路径。
  • 在3.1.7中,修复了池化前的交易清理和Microsoft Entra令牌超时处理。

发布

版本 已释放 客户相关变更
3.1.0 2022 年 3 月 正式发布。
3.1.1 2022 年 8 月 修复了 null SqlBinaryrowversion 值、.NET 6 Kerberos 失败以及 Microsoft Entra 认证空引用失败。
3.1.2 2023 年 2 月 增加了 .NET Framework Windows ARM64 支持,并修复了重试列表线程安全、分布式事务死锁、UTF-8 整合和存储过程验证。
3.1.3 2023 年 3 月 通过 AcquireTokenSilent 降低了 Microsoft Entra 令牌被限流的情况,并修复了大型查询的 TDS RPC 失败。
3.1.4 2023 年 10 月 固定异步飞区重试、LocalDB 和托管的 SNI 备份、文件版本、连接活动关联和 EventSource 格式化。
3.1.5 2024 年 1 月 修复了CVE-2024-0056和证书链验证。
3.1.6 2024 年 8 月 这个包裹没有正确签名,也未被列入名单。 不存在上游的发布说明文件。 改用3.1.7版本吧。
3.1.7 2024 年 8 月 修复了池化前的事务事件清理问题、身份验证超时问题、程序集签名问题以及 SNI 应用程序域崩溃问题。

3.0

3.0版本于2021年6月正式发布。 最终补丁是3.0.1,于2021年9月发布。

  • 增加了可配置的重试逻辑,用于连接和命令操作。 在 3.0 版本中,它仍需通过 Switch.Microsoft.Data.SqlClient.EnableRetryLogic 显式启用。
  • 新增了连接和池活动的事件计数器。
  • 新增了通过 Azure.Identity 进行的 Active Directory Default 身份验证。
  • 新增了连接作用域和命令作用域的“始终加密”密钥存储提供程序注册。
  • 增加了TCP IP地址偏好。
  • 更改了用户分配的托管身份认证,使其使用客户端 ID 代替对象 ID 。User Id
  • 将 SQL 行版本 的空值改为返回 DBNull ,而不是空字节数组。 AppContext 交换机保留了旧有的行为。
  • 将最低.NET框架目标从4.6提高到4.6.1。

从 3.0 版本开始,系统密钥存储提供程序优先于注册在连接或命令上的提供程序。 如果自定义提供商的名称与内置提供商不一致,请重命名。

发布

版本 已释放 客户相关变更
3.0.0 2021 年 6 月 正式发布。
3.0.1 2021 年 9 月 修复了 Microsoft Entra 连接打开操作受阻、事务提升状态、必需的加密、重试递归和死锁以及连接不可用的问题。

2.1

2.1 版本于 2020 年 11 月正式发布。 最终补丁是2.1.7,于2024年1月发布。

  • Always Encrypted扩展至支持的.NET标准2.0平台。
  • 在 Unix 上为 .NET Core 以及所有支持 .NET Standard 2.1 的平台新增了安全隔离区支持。
  • 添加 Active Directory Device Code Flow 并管理身份认证。
  • 新增了用于交互式身份验证和设备代码身份验证的自定义钩子。
  • 新增了敏感度、分类、排名元数据。
  • 已添加 SqlConnection.ServerProcessId。
  • 已将 Command Timeout 连接选项添加为通过连接创建的命令的默认选项。
  • 2.1.7版本修复了CVE-2024-0056加密降级路径。

发布

版本 已释放 客户相关变更
2.1.0 2020 年 11 月 正式发布。
2.1.1 2020 年 12 月 修复了 Azure Functions、Unix Kerberos 和 TCP keep-alive 中的系统分配托管标识问题。
2.1.2 2021 年 3 月 修复了 Unix 上的命名实例、超时导致的错误结果、不安全的 DTD 处理、Kerberos SPN、缺失的缓存依赖项、跟踪以及 MARS 标头等问题。
2.1.3 2021 年 5 月 通过开放的结果集防止了交易数据损坏,并修复了a SinglePhaseCommit 和 TransactionEnded race。
2.1.4 2021 年 9 月 确保连接在需要加密时失败,固定连接进入不可用状态。
2.1.5 2022 年 8 月 增加了对存储过程CommandText长度的验证,并修复了 .NET 6 Kerberos 身份验证和 SqlTypeWorkarounds。
2.1.6 2023 年 4 月 修复了 SqlCommand.ExecuteReaderAsync 中大型查询的 TDS RPC 失败、默认 UTF-8 排序规则冲突以及发送 attention 时的死锁。
2.1.7 2024 年 1 月 修复了CVE-2024-0056和证书链验证。

2.0

2.0版本于2020年6月正式发布。 最终补丁是2.0.1,于2020年8月发布。

  • 在 .NET Core 和 .NET Standard 上新增了 Active Directory Integrated 和 Active Directory Interactive 身份验证。
  • 新增了 Active Directory Service Principal 身份验证。
  • 已添加 Microsoft.Data.SqlClient.EventSource 跟踪。
  • 新增了跨平台的TCP keep-alive和Windows上的自愿托管网络实现,用于测试和调试。 托管路径不支持非域 Windows 身份验证。
  • 添加了 SqlBulkCopy.RowsCopied 和有序批量复制提示。
  • 已添加 SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry)。
  • 通过Microsoft.Data.SqlClient.SNI.runtime依赖增加了 Windows ARM 支持。
  • 当服务器强制加密时,开始验证服务器证书,包括连接字符串设置为 Encrypt=false 时的情况。 如果证书不被信任或名称与服务器不匹配,升级后连接可能会失败。
  • 将十进制参数尺度处理更改为兼容 SQL Server 的四舍五入。

发布

版本 已释放 客户相关变更
2.0.0 2020 年 6 月 正式发布。
2.0.1 2020 年 8 月 增加了对共存友好的身份验证配置,并修复了池化令牌过期、瞬态故障处理、安全区域缓存以及原生 SNI 预登录错误等问题。

1.1

1.1版本于2019年11月正式发布。 最终补丁是1.1.4,于2021年3月发布。

  • 在受支持的 .NET Framework 和 .NET Core 目标平台上添加了支持安全隔离区的 Always Encrypted。
  • 在 .NET Core 上的 AttachDBFilename 中添加了 |DataDirectory| 扩展。
  • 通过多数据包目标缓冲区缓存改进了异步读取。
  • 在 SqlDataReader 和 TdsParserStateObject 中降低了快照开销。
  • 在后续补丁中修复了超时状态和多个活动结果集 (MARS) 标头错误。

发布

版本 已释放 客户相关变更
1.1.0 2019 年 11 月 正式发布。
1.1.1 2020 年 2 月 回退了导致死锁的异步 SNIPacket 更改,并纠正了 SNI 依赖范围。
1.1.2 2020 年 4 月 为 Active Directory 交互式身份验证添加了用户名,并修复了密码持久化和 MARS TDS 标头。
1.1.3 2020 年 5 月 阻止已中止的事务登记池化连接,并还原了导致回归的 MARS 标头修复。
1.1.4 2021 年 3 月 修正了 .NET Framework 4.8 及更高版本中的超时状态下的错误结果以及 MARS 标头错误。

1.0

Microsoft。Data.SqlClient 1.0 于 2019 年 8 月正式发布。 最终补丁是1.0.19269.1,于2019年9月发布。

  • 引入了单独发售 Microsoft.Data.SqlClient 的供应商。
  • 支持.NET Framework 4.6及以上版本、.NET Core 2.1及以后版本,以及.NET标准2.0。
  • 在 .NET 框架上添加了Active Directory Interactive认证功能。
  • 在 .NET Core 上添加了Active Directory Password认证功能。
  • 在SqlDataReader上新增了数据敏感性分类元数据。
  • 新增了 SQL Server 2019 UTF-8 整合支持。
  • 在 .NET Core 上增加了始终加密支持。

发布

版本 已释放 客户相关变更
1.0.19239.1 2019 年 8 月 正式发布。 交易失败后固定连接重用、SNI发布、全局化不变处理和批量副本空拓宽。
1.0.19249.1 2019 年 9 月 修复了 Unix 上大型多数据包数据读取的问题。
1.0.19269.1 2019 年 9 月 已恢复 SqlCommand.StatementCompleted,补上了缺失的 SqlConnectionStringBuilder.Authentication,并回退了一项与 SqlAuthenticationParameters.Resource API 不兼容的更改。

对于从旧版提供程序迁移而来的应用程序,应使用从 System.Data.SqlClient 迁移到 Microsoft.Data.SqlClient,而不要仅阅读发行说明。

可选包发布说明

可选包都有自己的发布说明。 从 7.0.2 版本开始,它们采用与核心驱动对齐的版本发布方式。

Package 发行说明
Microsoft.Data.SqlClient.Extensions.Azure Azure 扩展发布说明
Microsoft.Data.SqlClient.Extensions.Abstractions 扩展抽象发布说明
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Azure 密钥保管库 提供程序发行说明

不要直接引用 Microsoft.Data.SqlClient.Internal.Logging 。 这是驱动包共享的内部依赖。

评估此更新

  1. 识别所有直接或传递使用的驱动程序和可选包版本。
  2. 阅读此次更新跨越的每个次要版本和主要版本的发布说明。
  3. 请查看 SqlClient 驱动支持 生命周期,以了解目标框架和数据库兼容性。
  4. 将所有相关软件包更新为兼容版本。
  5. 构建并测试应用的认证、加密、连接池、参数、事务、重试、诊断和部署输出。

关于安装和部署命令,请参见安装、更新和部署 Microsoft。Data.SqlClient。