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 框架。
  • 非同步 SqlConnection.GetSchemaAsync 過載。
  • 透過 SqlConnection.RegisteredApplication 和第 2 版 TDS USERAGENT 承載資料進行應用程式身分識別回報。 在開啟連線前先設定屬性。 這個值不屬於連線池金鑰,所以重複使用的實體連線會顯示最初建立它的應用程式。 應用程式身份是客戶端提供的遙測數據,而非授權或其他安全決策的基礎。
  • 連接字串別名如 ColumnEncryption、 ConnectTimeout、 WorkstationIdFailoverPartnerPacketSize。
  • SqlBulkCopy 中 $node_id、$edge_id、$from_id 和 $to_id 的 SQL Graph 偽欄對應。
  • 由 SqlConnection.GetSchema 回傳的 json 集合中的 SQL Server DataTypes 類型,包括 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 中提供的憑證與安全區域驗證修正。 當你在受管理的 SNI 上啟用憑證驗證時,ServerCertificate 會將已設定的憑證檔案與伺服器呈現的憑證進行比較。 無效或無法讀取的檔案會讓連線失敗,而不是繞過設定的憑證檢查。 虛擬安全模式(VSM)與主機守護服務(HGS)安全區域證明會驗證安全區域公鑰是否綁定至已簽署的證明報告。 當你從沒有這些修正的舊版本升級時,再重新測試這些路徑。

主要修正

  • 已修正回滾後 TransactionScope 仍會中斷的連線池連線,這可能導致後續 BeginTransaction() 呼叫失敗。
  • 在受管理的 SNI 中,修正了透過命名管道的 IPv6 常值伺服器名稱。
  • 已修正大型 decimal 參數在明確指定精確度與小數位數時發生的溢位、使用 sql_variant 的 DateOnly 參數與表值參數,以及在 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 Key Vault Provider 7.1.0 版本實作了非同步金鑰儲存提供者方法,並修正了並行時的快取成長與重複金鑰客戶端問題。 這些非同步方法有利於直接呼叫提供者;驅動程式的指令執行路徑仍使用同步鍵值作業。 Azure 擴充功能與擴充抽象的版本會對齊,且不會更改公開 API。

欲了解預覽歷史,請參閱 preview1、 preview2 和 preview3 的發行說明。

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 Hyperscale 及命名讀取副本的增強路由會自動處理。
  • 強型別的指令、連線及交易診斷事件可在 .NET Framework 及目前的 .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 簽章驗證快取處理,並修正取消呼叫和 null-buffer GetBytes 與 GetChars 呼叫中的錯誤。
7.0.3 2026 年 9 月 SNI 更新至 6.0.3。 固定SqlBulkCopy中繼資料存取、追蹤配置、ServerCertificate受管理 SNI 驗證、Always Encrypted enclave 證明金鑰驗證、AccessTokenCallback.NET Framework 上的 TNIR 預設值、認證狀態保存,以及可設定的重試組件解析。 衝突的 SSPI 與令牌認證設定現在會丟出 InvalidOperationException。 aligned 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 的組件版本從 1.0.0.0 變更為 7.0.0.0。 更新這些套件時,請重新建置應用程式或加入綁定重定向。

6.1 LTS

6.1.0 版本於 2025 年 7 月發布,但後來因關鍵迴歸問題而下架。 6.1.1 版本於 2025 年 8 月發布,確立了支援的 6.1 LTS 系列。

功能與變更

  • 原生 SQL Server 2025 透過SqlVector<T>進行向量傳輸,最初用於單精度浮點向量。
  • 一個用於函式庫相容性的 .NET Standard 2.0 參考資產。 這個資產不是執行時實作。 可執行應用程式必須使用支援的 .NET 或 .NET Framework 執行時資產。
  • 在 Microsoft Fabric 中,為大型非同步讀取提供選擇加入封包多工處理,以及 SQL 資料庫的端點處理。
  • 提升原生提前編譯(AOT)支援。
  • 減少連線與 TDS 處理路徑中的記憶體配置。
  • 7.0 新增了公開的 Security Support Provider Interface (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 網頁帳戶管理員(WAM)Broker 支援、強化 TDS 權杖剖析、修正快取資料行主要金鑰簽章失敗,以及修正 GetChars 引數驗證。
6.1.7 2026 年 9 月 SNI 更新至 6.0.3。 修正了 ServerCertificate受管理 SNI 驗證、Always Encrypted enclave attestation 金鑰驗證、AccessTokenCallback .NET Framework 上的 TNIR 預設值、連線池金鑰中的權杖驗證狀態、以回呼為基礎的預先登入憑證驗證,以及可設定的重試組件解析。

先前版本系列

以下版本分支已不再受支援。 當你計劃跨多個驅動版本升級時,請參考他們的摘要。

6.0

6.0 版本於 2025 年 1 月正式發行。 最後一次更新是 6.0.5,於 2026 年 1 月釋出。

  • 新增透過 Microsoft.Data.SqlTypes.SqlJson 提供的原生 SQL Server JSON 支援,包括讀取、寫入、串流及批量複製路徑。
  • 新增了用於指令、連線及交易作業事件的公開強型別診斷承載資料。
  • 新增 OpenAsync(SqlConnectionOverrides, CancellationToken),包括 OpenWithoutRetry。
  • 在SqlDataRecord和DateOnly結構化參數中新增對TimeOnly和DataTable的支援。
  • 新增 .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月 修正可能的 socket 接收 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 用於非同步、池相容的代幣擷取。
  • 已新增SqlBatch和SqlBatchCommand,適用於 .NET 6 及更新版本。
  • 新增SqlDiagnosticListener對 .NET 標準的支援。
  • 新增 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月 修正了 socket 接收時可能發生的 null 失敗及參考組件不一致,允許負暫態錯誤數,並更新相依關係。

5.1

版本 5.1 於 2023 年 1 月正式發行。 最後一個補丁是 5.1.9,於 2026 年 1 月釋出。

  • 新增 .NET 6 支援,並放棄 .NET Core 3.1。
  • 新增對參數值與 GetFieldValue 的 DateOnly 和 TimeOnly 支援。
  • 新增 .NET 中的 TLS 1.3 及原生 SQL Server 網路介面(SNI)路徑。
  • 新增 ServerCertificate 以對 Encrypt=Mandatory 和 Encrypt=Strict 進行精確的憑證比對。
  • 新增 Windows ARM64 對 .NET Framework 的支援。
  • 把字串解析器公開 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 使用者實例、enclave 重試、LocalDB、連線字串建構值、SqlConnectionEncryptOption 組態轉換及 OpenAsync 暫態錯誤。
5.1.3 2024 年 1 月 修正了 CVE-2024-0056 及憑證鏈驗證。
5.1.4 2024 年 1 月 已修復 .NET 分散式交易死結,並針對 CVE-2023-36414 升級 Azure.Identity。
5.1.5 2024 年 1 月 修正了集區前的交易清理,以及 Always Encrypted 的日期與時間轉換失敗。 已更新 CVE-2024-21319 的 IdentityModel 相依性。
5.1.6 2024 年 8 月 修正了 OpenAsync、認證逾時,以及加密讀取器待處理資料失敗。 更新了 CVE-2024-35255 與已快取的 TokenCredential 執行個體識別相依性。
5.1.7 2025年4月 修正了 socket 接收時可能發生的 null 失敗,對齊了來源與參考組件,並更新了相依性。
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 月釋出。

  • 新增對 TDS 8.0 的支援,透過 Encrypt=Strict。 嚴格模式會在 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 月釋出。

  • 新增 Attestation Protocol=None 用於基於虛擬化的安全性(VBS)隔離區。
  • Linux 與 macOS 啟用 MultiSubnetFailover 時,SQL Server 解析協定請求已平行化。
  • 在認證時,修正了憑證撤銷清單檢查。
  • 修正了 Microsoft Entra 認證、null SqlBinary 與 rowversion 值,以及 UTF-8 定序行為。

版本

版本 已釋出 與客戶相關的變更
4.1.0 2022 年 1 月 正式發行。
4.1.1 2022 年 9 月 修正憑證撤銷清單失敗,平行化 SQL Server 解析協定請求,MultiSubnetFailover並修正 Microsoft Entra 認證、rowversion、UTF-8 及 SNI 應用域失敗。

4.0

4.0 版本於 2021 年 11 月正式推出。 最後一次補丁是 4.0.6,於 2024 年 8 月釋出。

  • 將預設值從 false 變更為 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

由於在 4.0 及更新版本中,預設會加密為 true,升級可能會暴露憑證信任或伺服器名稱不符的問題。 不要關閉加密來避免這些錯誤。 安裝受信任的伺服器憑證或設定部署時的憑證驗證。

版本

版本 已釋出 與客戶相關的變更
4.0.0 2021年11月 正式發行版。
4.0.1 2022 年 1 月 新增SuppressInsecureTLSWarning並修正了 .NET 6 Kerberos、LocalDB 管道名稱及並行 enclave 查詢。
4.0.2 2022 年 9 月 修正憑證撤銷清單失敗、將 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 月釋出。

  • 新增 Attestation Protocol=None 用於 VBS 隔離區。
  • 將 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 認證 null reference 失敗。
3.1.2 2023年2月 新增 .NET Framework Windows ARM64 支援,並修正重試清單執行緒安全、分散式交易死鎖、UTF-8 整合及儲存程序驗證。
3.1.3 2023 年 3 月 減少 Microsoft Entra 令牌限速,並AcquireTokenSilent修正大型查詢 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 進行驗證的功能。
  • 新增了連線範圍與命令範圍的「始終加密」金鑰儲存提供者註冊。
  • 新增了 TCP IP 位址偏好設定。
  • 更改 User Id 中使用者指派的管理身分驗證,改為使用用戶端 ID 而非物件 ID。
  • 將 SQL 的 rowversion null 值改為回傳 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 月正式發行。 最後一個補丁是 2024 年 1 月釋出的 2.1.7。

  • 將 Always Encrypted 擴展到支援的 .NET Standard 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 月 透過開放的結果集防止交易資料損壞,並修正了 SinglePhaseCommit 與 TransactionEnded 的競態條件。
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 月 新增了共存友善的認證配置,並修正了池狀權杖到期、瞬態錯誤處理、enclave 快取,以及原生 SNI 預登入錯誤。

1.1

1.1 版本於 2019 年 11 月正式可用。 最終的修補檔是 1.1.4,於 2021 年 3 月釋出。

  • 在支援的 .NET Framework 及 .NET Core 目標上新增了具有安全記憶體保護區的 Always Encrypted。
  • 在 .NET Core 上新增|DataDirectory|了擴充AttachDBFilename功能。
  • 改良的非同步讀取,具備多封包目標緩衝區快取。
  • 在 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 及更新版本中的 timeout-state 的錯誤結果與 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 Standard 2.0。
  • 在 .NET Framework 上新增了Active Directory Interactive驗證功能。
  • 在 .NET Core 上新增 Active Directory Password 認證功能。
  • 在 SqlDataReader 上新增資料敏感性分類元資料。
  • 新增 SQL Server 2019 UTF-8 定序支援。
  • 新增了 .NET Core 的 Always Encrypted 支援。

版本

版本 已釋出 與客戶相關的變更
1.0.19239.1 2019 年 8 月 正式推出版本。 修正了交易失敗後的連線重複使用問題、SNI 發布、非依全球化設定的處理,以及大量複製時 null 擴大處理。
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 Key Vault Provider 發布說明

不要直接參照 Microsoft.Data.SqlClient.Internal.Logging。 這是驅動程式套件內部共享的相依關係。

評估此更新

  1. 識別所有直接或傳遞使用的驅動程式及選用套件版本。
  2. 閱讀更新所跨越的每個次要和主要版本的發行說明。
  3. 請檢查 SqlClient 驅動程式支援的生命週期 ,以了解目標框架與資料庫相容性。
  4. 將所有相關套件更新為相容版本。
  5. 建置並測試應用程式的認證、加密、連線池、參數、交易作業、重試、診斷及部署輸出。

關於安裝與部署指令,請參見安裝、更新與部署 Microsoft.Data.SqlClient。