Co nowego w Microsoft. Data.SqlClient

Microsoft. Data.SqlClient jest dostępny niezależnie od .NET. Ten artykuł podsumowuje istotne funkcje, zmiany w zachowaniu oraz zmiany kompatybilności w każdej linii wydawniczej. Tabele wydań zawierają wszystkie opublikowane stabilne wersje pakietów, w tym każdą poprawkę hotfix i każdy pakiet niewidoczny na liście. Każdą aktualizację poprawek i zależności można znaleźć w pełnych notatkach dotyczących wydania w repozytorium SqlClient.

Bieżące wersje

Linia wydawnicza Najnowsza wersja Data wydania Support
7.1 7.1.1 Wrzesień 2026 r. Standardowe wsparcie terminowe (STS)
7.0 7.0.3 Wrzesień 2026 r. Standardowe wsparcie terminowe (STS)
6.1 6.1.7 Wrzesień 2026 r. Obsługa długoterminowa (LTS)

Nie używaj wersji podpremierowych w produkcji. Interfejsy API w wersji zapoznawczej i ich działanie mogą ulec zmianie przed udostępnieniem w ramach ogólnej dostępności (GA).

Tabele wydawnictw i podsumowania ogólnej dostępności wykorzystują miesiąc publikacji NuGet. Artykuł o cyklu życia zawiera oficjalne daty premiery, które mogą się różnić. Aby uzyskać informacje o oknach wsparcia, zobacz cykl życia wsparcia sterowników SqlClient.

Oś czasu wersji

Te wydania zmieniły sposób, w jaki istniejące aplikacje się łączą. Są wymienione od najnowszych. Zaznacz każdą wersję znajdującą się między Twoją obecną wersją a tą, do której się przenosisz.

Wersja Change Co zrobić
7.0 Uwierzytelnianie Microsoft Entra przenosi się do Microsoft.Data.SqlClient.Extensions.Azure. Dodaj pakiet rozszerzenia, gdy korzystasz z trybu Active Directory uwierzytelniania.
5.0 Encrypt=Strict dodaje TDS 8.0. SqlConnectionStringBuilder.Encrypt zmienia się z bool do SqlConnectionEncryptOption. Przekompiluj kod wykorzystujący SqlConnectionStringBuilder.Encrypt.
4.0 Właściwość Encrypt domyślnie przyjmuje wartość true. Zaufaj certyfikatowi serwera lub ustaw TrustServerCertificate=true tylko do rozwoju.

Uwierzytelnianie Microsoft Entra przechodzi do pakietu rozszerzeniowego w wersji 7.0

Od wersji 7.0 pakiet podstawowy nie zależy już od Azure.Core, Azure.Identity, ani MSAL. Tryby Active Directory uwierzytelniania wymagają Microsoft.Data.SqlClient.Extensions.Azure. Bez tego pakietu Open lub OpenAsync wyrzucają System.ArgumentException, gdy serwer żąda uwierzytelnienia Microsoft Entra, z komunikatem takim jak:

Cannot find an authentication provider for 'ActiveDirectoryDefault'. Install the 'Microsoft.Data.SqlClient.Extensions.Azure' NuGet package (https://www.nuget.org/packages/Microsoft.Data.SqlClient.Extensions.Azure) to use Active Directory (Entra ID) authentication methods.

Wyjątek nie jest SqlException, więc kod, który przechwytuje tylko SqlException, nie obsługuje go. Począwszy od wersji 7.0.2, używaj tej samej wersji pakietu podstawowego i odpowiadających mu pakietów towarzyszących. Aby uzyskać informacje o konfiguracji, zobacz Microsoft Entra authentication with Microsoft.Data.SqlClient.

Wymuszanie szyfrowania i TDS 8.0 w 5.0

Wersja 5.0 dodała Encrypt=Strict, które korzysta z TDS 8.0. Tryb ścisły uruchamia TLS przed wymianą logowania TDS i zawsze weryfikuje certyfikat serwera, więc TrustServerCertificate nie ma wpływu. Tryb ścisły wymaga SQL Server 2022 lub nowszych, Azure SQL Database lub Azure SQL Managed Instance. Ta sama wersja zmieniła SqlConnectionStringBuilder.Encrypt z bool na SqlConnectionEncryptOption. Ta zmiana powoduje niezgodność binarną, więc rekompiluj aplikacje i biblioteki, które ustawiają tę właściwość.

Encrypt domyślnie ustawia się na true w wersji 4.0

Od wersji 4.0 połączenia szyfrują się domyślnie i weryfikują certyfikat serwera. Przed wersją 4.0 Encrypt domyślnie miało wartość false. Po aktualizacji serwer, który prezentuje certyfikat podpisany samodzielnie lub certyfikat, którego nazwa nie zgadza się z nazwą serwera w parametry połączenia, powoduje niepowodzenie połączenia z powodu błędu łańcucha certyfikatów lub nazwy. Zainstaluj certyfikat, któremu klient ufa, i połącz się, używając nazwy z certyfikatu. Tylko do celów programistycznych możesz ustawić TrustServerCertificate=true. Szczegóły można znaleźć w artykule Szyfrowanie i walidacja certyfikatów w Microsoft.Data.SqlClient.

7.1 STS

Wersja 7.1 weszła do ogólnej dostępności we wrześniu 2026 roku. To aktualna linia STS.

Cechy i zmiany

  • SqlBatchwsparcie dla .NET Framework.
  • Przeciążenia asynchroniczne SqlConnection.GetSchemaAsync .
  • Raportowanie tożsamości aplikacji za pomocą SqlConnection.RegisteredApplication i wersji 2 ładunku TDS USERAGENT. Ustaw tę właściwość przed otwarciem połączenia. Wartość ta nie jest częścią klucza puli połączeń, więc ponownie użyte fizyczne połączenie zgłasza nazwę aplikacji, która je pierwotnie utworzyła. Tożsamość aplikacji to telemetria dostarczana przez klienta, a nie podstawa do autoryzacji czy innych decyzji dotyczących bezpieczeństwa.
  • Alisy łańcuchów połączeń takie jak ColumnEncryption, ConnectTimeout, FailoverPartner, PacketSize, oraz WorkstationId.
  • Mapowania pseudokolumn SQL Graph dla $node_id, $edge_id, $from_id oraz $to_id w SqlBulkCopy.
  • Typ SQL Server json w kolekcji DataTypes zwracany przez SqlConnection.GetSchema, w tym na Azure SQL.
  • Egzekwowanie mechanizmu opt-in Connection Idle Timeout poprzez Switch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior=false. Domyślny limit czasu bezczynności wynosi 300 sekund; 0 wyłącza limit czasu bezczynności. Domyślne zachowanie pulowania pozostaje bez zmian.
  • Tryb limitu czasu połączenia opcjonalnie włączany, który obejmuje czas oczekiwania na połączenie z puli przez Switch.Microsoft.Data.SqlClient.UseOverallConnectTimeoutForPoolWait=true. Przełącznik domyślnie ma wartość false.
  • Rozszerzone wsparcie dla transakcji, odzyskiwanie zerwanych połączeń, wstępne inicjowanie puli, przycinanie bezczynnych połączeń, odzyskiwanie wyciekłych połączeń oraz diagnostyka w puli połączeń V2. Pula pozostaje w trakcie oceny i wymaga Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2.
  • Metody asynchroniczne na dostawcach przechowywania kluczy zawsze szyfrowanych. Sterownik nie wywołuje jeszcze tych metod podczas wykonywania poleceń, więc nie sprawiają one, że istniejące operacje Always Encrypted stają się asynchroniczne.
  • Zaktualizowano natywne pakiety SNI do wersji 7.1.0. Obsługiwane platformy docelowe aplikacji to .NET 8 i nowsze wersje oraz .NET Framework 4.6.2 i nowsze wersje.

Zmiany dotyczące zgodności

  • SqlConnectionStringBuilder.TransparentNetworkIPResolutionjest przestarzały w .NET Framework. Użyj MultiSubnetFailover zamiast tego. Ta zmiana dodaje ostrzeżenie o czasie kompilacji; nie zmienia zachowania w czasie działania ani domyślnego ustawienia żadnej z opcji.
  • SqlBatchCommand.CommandBehavior oraz CommandBehavior przekazane do SqlBatch.ExecuteReader są uwzględniane. Wcześniejsze wersje ignorowały te ustawienia.
  • Przestarzała Type System Version=SQL Server 2000 opcja połączenia powoduje zgłoszenie ArgumentException podczas otwierania połączenia. Użyj obsługiwanej wartości, takiej jak Latest.

Wersja 7.1 zawiera także poprawki walidacji certyfikatów i enklawy zawarte w wersjach 6.1.7 i 7.0.3. Gdy włączasz walidację certyfikatów na zarządzanym SNI, ServerCertificate porównuje skonfigurowany plik certyfikatu z certyfikatem prezentowanym przez serwer. Nieprawidłowy lub nieczytelny plik powoduje niepowodzenie połączenia zamiast pomijać skonfigurowane sprawdzanie certyfikatu. Poświadczenie enklawy za pomocą trybu wirtualnego bezpiecznego (VSM) i usługi Host Guardian Service (HGS) weryfikuje, że klucz publiczny enklawy jest powiązany z podpisanym raportem poświadczenia. Przetestuj te ścieżki ponownie podczas aktualizacji z wcześniejszej wersji bez tych poprawek.

Kluczowe poprawki

  • Naprawiono problem z połączeniami w puli, które pozostawały uszkodzone po wycofaniu TransactionScope, co mogło spowodować niepowodzenie późniejszego wywołania BeginTransaction().
  • Naprawiono literalne nazwy serwerów IPv6 przez potoki nazwane w zarządzanym SNI.
  • Naprawiono duże przepełnienia parametrów decimal z wyraźną precyzją i skalą, parametry DateOnly i parametry tabelowe przy użyciu sql_variant, a także pomijanie strumieniowanych danych kolumn po IsDBNull().
  • Naprawiono liczniki puli połączeń, niepotrzebne działania timerów utrzymania puli oraz regresje przepustowości otwierania/zamykania puli połączeń V2.
  • Naprawiono konfigurowalną logikę ponawiania rejestrującą trwałą procedurę obsługi rozpoznawania zestawów dla całego procesu w nowoczesnym .NET. Niestandardowe zestawy ponawiania muszą znajdować się w katalogu bazowym aplikacji; zależności ładowane po konstrukcji dostawcy muszą być rozwiązywane poprzez normalne rozwiązywanie zależności aplikacji lub procedurę obsługi dostarczoną przez aplikację.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
7.1.1 Wrzesień 2026 r. Naprawiono ArgumentException dla parametrów SqlDecimal i decimal o wartości zerowej, których precyzja jest równa ich skali. Naprawiono nieudane otwarcia połączenia, gdy ClearPool lub ClearAllPools zostanie uruchomione podczas trwającego otwierania. Pula połączeń V2 teraz sprawdza wygaśnięcie tokena dostępu przed ponownym użyciem połączenia w puli, co jest zgodne z domyślną pulą. Poprawka tokenów dotyczy tylko aplikacji, które włączyły pulę połączeń V2.
7.1.0 Wrzesień 2026 r. Wydanie ogólnodostępne, w tym skumulowane zmiany względem cyklu zapowiedzi 7.1.

Ważna

Zaktualizuj bezpośrednio odwoływane pakiety towarzyszące do wersji 7.1.1 wraz z głównym sterownikiem, w tym Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions i Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Pozwól, aby Microsoft.Data.SqlClient.Internal.Logging zostało rozwiązane tranzytywnie. Wyrównane zestawy zachowują AssemblyVersion 7.0.0.0, więc aktualizacja z wersji 7.0.2, 7.0.3 lub 7.1.0 nie wymaga nowych przekierowań wiązań w .NET Framework. Aktualizując z wersji 7.0.0 lub 7.0.1, zapoznaj się z jednorazowymi zmianami wersji zestawu opisanymi w informacjach o wersji 7.0.2.

Wersja Azure Key Vault Provider 7.1.0 implementuje metody asynchronicznego dostawcy przechowywania kluczy oraz naprawia wzrost pamięci podręcznej oraz duplikowanie klientów kluczy w warunkach współbieżności. Te asynchroniczne metody sprzyjają bezpośrednim wywołaniom dostawcy; ścieżki wykonywania poleceń sterownika nadal wykorzystują synchroniczne operacje na kluczach. rozszerzenie Azure i wydania abstrakcji rozszerzeń wyrównują wersje bez zmian w publicznych API.

Pakiety towarzyszące są również dostępne w wersji 7.1.1 bez żadnych zmian funkcjonalnych, więc możesz zaktualizować każdy pakiet z rodziny do tej samej wersji. Szczegóły można znaleźć w notatkach do wydania Azure Key Vault Provider 7.1.1, rozszerzenia Azure 7.1.1 oraz abstrakcji rozszerzeń 7.1.1.

Historię podglądu znajdziesz w informacjach o wersji dla preview1, preview2 i preview3.

7.0 STS

Wersja 7.0 trafiła do ogólnej dostępności w marcu 2026 roku. Jest wspierany do 17 grudnia 2026 roku, czyli trzy miesiące po wydaniu wersji 7.1.

Cechy i zmiany

  • Uwierzytelnianie Microsoft Entra za pomocą sterownika przeniosło się z pakietu podstawowego do Microsoft.Data.SqlClient.Extensions.Azure. Dodaj pakiet rozszerzenia, gdy korzystasz z trybu Active Directory uwierzytelniania.
  • Pakiet podstawowy nie zależy już od Azure.Core, Azure.Identity, ani Microsoft Authentication Library (MSAL).
  • SqlConnection.SspiContextProvider obsługuje niestandardowe negocjacje tokenów Kerberos i NTLM. Tożsamość dostawcy jest częścią klucza puli połączeń.
  • Ulepszone routowanie dla Azure SQL Hyperscale oraz nazwanych replik odczytu jest negocjowane automatycznie.
  • Silnie typowane zdarzenia diagnostyczne poleceń, połączenia i transakcji są dostępne w bieżących wersjach platform .NET i .NET Framework.
  • SqlConfigurableRetryFactory.BaselineTransientErrors ujawnia domyślną listę błędów przejściowych sterownika.
  • Active Directory Password uwierzytelnianie jest przestarzałe. Używaj uwierzytelniania interaktywnego dla aplikacji użytkowników, uwierzytelniania przez podmiot usługi dla usług lub zarządzanej tożsamości dla obciążeń hostowanych w Azure.
  • Wsparcie docelowe zaczyna się od .NET 8 i .NET Framework 4.6.2. Sterownik obsługuje także budowanie i uruchamianie na .NET 10.

Multipleksowanie pakietów dla odczytów asynchronicznych pozostaje funkcjonalnością podglądową i jest opcjonalne w wersji 7.0. Testuj przełączniki zgodności w środowisku produkcyjnym i zachowaj możliwość wycofania zmian.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
7.0.3 Wrzesień 2026 r. Zaktualizowałem SNI do wersji 6.0.3. Naprawiono dostęp do metadanych SqlBulkCopy, śledzenie alokacji, walidację ServerCertificate w zarządzanym SNI, weryfikację klucza poświadczania enklawy w Always Encrypted, domyślne ustawienia TNIR AccessTokenCallback w .NET Framework, zachowanie stanu uwierzytelniania oraz konfigurowalne ponawianie rozpoznawania zestawu. Sprzeczące się ustawienia uwierzytelniania SSPI i tokenów teraz zgłaszają InvalidOperationException. Dopasowane rozszerzenie Azure naprawia analizę urzędu Entra dla połączeń Dataverse i Dynamics 365.
7.0.2 Czerwiec 2026 r. Ujednolicono główny sterownik i pakiety towarzyszące, zwiększono odporność parsowania tokenów TDS, poprawiono obsługę pamięci podręcznej weryfikacji podpisów funkcji Always Encrypted oraz naprawiono błędy związane z anulowaniem i wywołaniami GetBytes oraz GetChars z buforem o wartości null.
7.0.1 Kwiecień 2026 r. Naprawiono zapytania o metadane SqlBulkCopy dla programu SQL Server 2016 i dedykowanych pul SQL usługi Azure Synapse Analytics, poprawiono metadane pól wektorowych, dodano brakującą zależność programu .NET Framework System.Data.Common oraz dodano przekierowywanie typów dla abstrakcji uwierzytelniania.
7.0.0 Marzec 2026 r. Wydanie ogólnie dostępne.

Ważna

Zaczynając od wersji 7.0.2, wyrównuj bezpośrednie odniesienia do Microsoft.Data.SqlClient, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, i Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Pozwól, aby Microsoft.Data.SqlClient.Internal.Logging zostało rozwiązane tranzytywnie. W środowisku .NET Framework wersje zestawów Extensions.Azure, Extensions.Abstractions i Internal.Logging zmieniły się z 1.0.0.0 na 7.0.0.0. Odbuduj aplikację lub dodaj przekierowania wiązań podczas aktualizacji tych pakietów.

6.1 LTS

Wersja 6.1.0 została wydana w lipcu 2025 roku, ale później została usunięta z listy z powodu krytycznych regresji. Wersja 6.1.1, wydana w sierpniu 2025 roku, ustanowiła wspieraną linię 6.1 LTS.

Cechy i zmiany

  • Natywna obsługa przesyłania wektorów w SQL Server 2025 przez SqlVector<T>, początkowo dla wektorów zmiennoprzecinkowych pojedynczej precyzji.
  • Referencyjny zasób .NET Standard 2.0 dla kompatybilności bibliotek. Ten asset nie jest implementacją w czasie rzeczywistym. Aplikacje wykonywalne muszą korzystać z obsługiwanego zasobu uruchomieniowego .NET lub .NET Framework.
  • Opcjonalne multipleksowanie pakietów dla dużych asynchronicznych operacji odczytu oraz obsługa punktów końcowych dla bazy danych SQL w Microsoft Fabric.
  • Ulepszone natywne wsparcie dla kompilacji Ahead-of-Time (AOT).
  • Zmniejszono alokacje w ścieżkach przetwarzania łączeń i TDS.
  • W wersji 7.0 dodano wewnętrzne podstawy na potrzeby publicznej rozszerzalności interfejsu Security Support Provider Interface (SSPI).

Nie wdrażaj wersji 6.1.0. Wersja 6.1.1 cofnęła zmiany w wykrywaniu i odtwarzaniu pakietów.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
6.1.7 Wrzesień 2026 r. Zaktualizowałem SNI do wersji 6.0.3. Naprawiono ServerCertificate walidację zarządzanego SNI, weryfikację klucza poświadczającego enclave Always Encrypted, AccessTokenCallback domyślne ustawienia TNIR w ramach .NET, stan uwierzytelniania tokenów w kluczach puli połączeń, walidację certyfikatów prelogin opartą na callbacku oraz konfigurowalne rozpoznawanie zestawów.
6.1.6 Czerwiec 2026 r. Dodano opcjonalną obsługę brokera Windows Web Account Manager (WAM), zwiększono odporność parsera tokenów TDS, poprawiono błędy weryfikacji podpisu buforowanego klucza głównego kolumny oraz naprawiono walidację argumentu GetChars.
6.1.5 Kwiecień 2026 r. Usunięto niepotrzebną obsługę Service Principal Name (SPN) i systemu nazw domen (DNS) w przypadku uwierzytelniania niezintegrowanego, sprawiono, że ExecuteScalar propaguje błędy serwera zwracane po danych, oraz poprawiono typy metadanych wektorowych.
6.1.4 Styczeń 2026 r. Dodano element EnableMultiSubnetFailoverByDefault. Stałe SqlDataAdapter awarie w grupowaniu i ujemne liczby aktywnych połączeń w metrykach puli.
6.1.3 Listopad 2025 r. Dodano to IgnoreServerProvidedFailoverPartner dla Basic Availability Groups i niestandardowych portów. Poprawiono wczesną inicjalizację metryk EventSource.
6.1.2 Październik 2025 Naprawiono problem z wczesną inicjalizacją liczników wydajności, zastępowaniem niestandardowych dostawców uwierzytelniania oraz ze współbieżnością puli, który uniemożliwiał wykorzystanie skonfigurowanego maksymalnego rozmiaru puli.
6.1.1 Sierpień 2025 roku Cofnięto zmiany dotyczące wykrywania niepełnych pakietów, poprawek i odtwarzania wprowadzone w wersji 6.1.0. Poprawiono wektorowe zestawy referencyjne oraz SqlVector<T>.Null.
6.1.0 Lipiec 2025 r. Wydanie ogólnie dostępne. Ten pakiet został usunięty z listy z powodu krytycznych błędów regresyjnych. Nie używaj go.

Poprzednie linie wydawnicze

Poniższe linie wersji nie są już obsługiwane. Korzystaj z tych podsumowań, gdy planujesz aktualizację obejmującą wiele wersji sterowników.

6.0

Wersja 6.0 trafiła do ogólnej dostępności w styczniu 2025 roku. Ostatnia poprawka miała numer 6.0.5 i została wydana w styczniu 2026 roku.

  • Dodano natywną obsługę formatu JSON w SQL Server za pośrednictwem Microsoft.Data.SqlTypes.SqlJson, w tym obsługę odczytu, zapisu, strumieniowania i kopiowania zbiorczego.
  • Dodano publicznie dostępne, silnie typowane ładunki diagnostyczne dla zdarzeń polecenia, połączenia i transakcji.
  • Dodano OpenAsync(SqlConnectionOverrides, CancellationToken), w tym OpenWithoutRetry.
  • Dodano obsługę SqlDataRecord i DataTable w parametrach strukturalnych DateOnly i TimeOnly.
  • Dodano wsparcie dla .NET 9.
  • Usunięto zasoby środowiska uruchomieniowego .NET Standard i .NET 6. Obsługiwane cele to wersje .NET 8 i nowsze, a także .NET Framework 4.6.2 i nowsze.
  • Ograniczono EnableOptimizedParameterBinding do poleceń tekstowych.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
6.0.5 Styczeń 2026 r. Naprawiono SqlDataAdapter obsługę wartości null we wsadowych wywołaniach RPC, dodano Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault i zaktualizowano zależności.
6.0.4 Listopad 2025 r. Dodano Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner dla grup Basic Availability Groups korzystających z niestandardowych portów TCP.
6.0.3 Październik 2025 Zapobiegano zastąpieniu niestandardowych dostawców uwierzytelniania oraz stałej puli współbieżności, które niedostatecznie wykorzystywały Max Pool Size.
6.0.2 Kwiecień 2025 Naprawione możliwe awarie gniazda odbiorowego, SqlJson API referencyjne, parametry wyjściowe JSON oraz zależności.
6.0.1 Styczeń 2025 r. Poprawiono SqlClientDiagnostic API referencyjne, ostrzegania TLS na niższym poziomie oraz zależności.
6.0.0 Styczeń 2025 r. Wydanie ogólnie dostępne. Ten pakiet nie jest wymieniony w NuGet, a notatki w górnym systemie nie zawierają powodu.

5.2

Wersja 5.2 trafiła do ogólnej dostępności w lutym 2024 roku. Ostatnią łatką była wersja 5.2.3, wydana w kwietniu 2025 roku.

  • Dodano SqlConnection.AccessTokenCallback na potrzeby asynchronicznego uzyskiwania tokenów zgodnego z pulą.
  • Dodano SqlBatch i SqlBatchCommand w wersjach .NET 6 i nowszych.
  • Dodano SqlDiagnosticListener wsparcie dla standardu .NET.
  • Dodano SqlBulkCopy.RowsCopied64 w wersji 64-bitowej. Starsza RowsCopied własność pozostaje 32-bitową liczbą całkowitą.
  • Dodano uwierzytelnianie Active Directory Workload Identity.
  • Dodano wsparcie dla platform .NET 8 i big-endian.
  • Zmieniono UseOneSecFloorInTimeoutCalculationDuringLogin, ustawiając domyślnie true.
  • Użyto NegotiateAuthentication dla zarządzanego interfejsu SSPI w platformie .NET 7 i nowszych wersjach.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
5.2.3 Kwiecień 2025 Naprawiono możliwe błędy null podczas odbioru z gniazda oraz niespójności w asemblacjach referencyjnych, dopuszczono ujemne numery błędów przejściowych i zaktualizowano zależności.
5.2.2 Sierpień 2024 r. Stałe limity tokenów, zarządzane połączenia gniazd SNI, celowanie asemblera, próby SSPI, odczyty typów zdefiniowane przez użytkownika oraz dane z szyfrowanego czytnika. Zaktualizowane pakiety tożsamości dla CVE-2024-35255.
5.2.1 Maj 2024 r. Naprawiono połączenia z nazwanymi instancjami w systemie Linux z portami, parametry tabelaryczne typu datetimeoffset(n), opóźnione OpenAsync, oraz zachowanie elementu AccessTokenCallback przez SqlConnection.Clone().
5.2.0 luty 2024 r. Wydanie ogólnie dostępne.

5.1

Wersja 5.1 trafiła do ogólnej dostępności w styczniu 2023 roku. Ostatnia poprawka to wersja 5.1.9, wydana w styczniu 2026 roku.

  • Dodano wsparcie dla .NET 6 i zrezygnowano z .NET Core 3.1.
  • Dodano obsługę DateOnly i TimeOnly dla wartości parametrów oraz GetFieldValue.
  • Dodano obsługę protokołu TLS 1.3 w platformie .NET oraz w ścieżkach natywnego interfejsu sieciowego SQL Server (SNI).
  • Dodano ServerCertificate do dokładnego dopasowywania certyfikatów za pomocą Encrypt=Mandatory i Encrypt=Strict.
  • Dodano wsparcie dla Windows ARM64 dla .NET Framework.
  • Upubliczniłem parser SqlConnectionEncryptOption ciągów znaków.
  • Wersja 5.1.3 naprawiła ścieżkę degradacji szyfrowania CVE-2024-0056 oraz walidację łańcucha certyfikatów.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
5.1.9 Styczeń 2026 r. Przeniesiono Environment.TickCount harmonogram do SqlStatistics i zaktualizowano zależności specyficzne dla struktury.
5.1.8 Listopad 2025 r. Dodano Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, poprawiono obsługę znacznika kolejności bajtów UTF-8 w operacji kopiowania zbiorczego, zmodernizowano tworzenie MSAL oraz zaktualizowano zależności.
5.1.7 Kwiecień 2025 Naprawiono możliwą awarię związaną z odbiorem z gniazda przy wartości null, uzgodniono asemblacje źródłowe i referencyjne oraz zaktualizowano zależności.
5.1.6 Sierpień 2024 r. Naprawiono OpenAsync, błędy limitu czasu uwierzytelniania oraz błędy oczekujących danych w zaszyfrowanym czytniku. Zaktualizowano zależności tożsamości dla CVE-2024-35255 oraz buforowanych instancji TokenCredential.
5.1.5 Styczeń 2024 Naprawiono czyszczenie transakcji przed pulowaniem oraz niepowodzenia konwersji wartości daty i godziny w funkcji Always Encrypted. Zaktualizowano zależności IdentityModel dla CVE-2024-21319.
5.1.4 Styczeń 2024 Naprawiono zakleszczenie w rozproszonych transakcjach platformy .NET i zaktualizowano Azure.Identity w związku z CVE-2023-36414.
5.1.3 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.
5.1.2 Październik 2023 r. Naprawiono instancje użytkownika SQL Express, ponowienia operacji enklawy, LocalDB, wartości konstruktora parametrów połączenia, konwersję konfiguracji SqlConnectionEncryptOption oraz błędy przejściowe OpenAsync.
5.1.1 Marzec 2023 r. Naprawiono raportowanie błędów funkcji Always Encrypted, transakcje w trybie przekierowania, dławienie tokenów, awarie TDS RPC przy dużych zapytaniach oraz obsługę wartości GetBytesAsync null.
5.1.0 Styczeń 2023 r. Wydanie ogólnie dostępne.

5.0

Wersja 5.0 weszła do ogólnej dostępności w sierpniu 2022 roku. Ostatnią łatką była wersja 5.0.2, wydana w marcu 2023 roku.

  • Dodano TDS 8.0 za pośrednictwem Encrypt=Strict. Tryb ścisły uruchamia TLS przed wymianą logowania TDS i zawsze weryfikuje certyfikat serwera.
  • Zmieniono SqlConnectionStringBuilder.Encrypt z bool na .SqlConnectionEncryptOption
  • Przeniesiono typy SQL Server common language runtime (CLR) do osobno wersjonowanego Microsoft.SqlServer.Server pakietu.
  • Dodano opcje połączeń Server SPN i Failover Server SPN.
  • Dodano obsługę aliasów SQL Server w systemie Windows w bieżącej platformie .NET.
  • Dodano SqlDataSourceEnumerator w systemie Windows.
  • Porzuciłem .NET Framework 4.6.1.

Ważna

Zmiana typu SqlConnectionStringBuilder.Encrypt narusza zgodność binarną. Typy usunięte z Microsoft.Data.SqlClient.Server również wymagają zmian w kodzie źródłowym, aby użyć Microsoft.SqlServer.Server. Skompiluj ponownie aplikacje i biblioteki, zaktualizuj przestrzenie nazw i sprawdź konflikty przestrzeni nazw, jeśli nadal występują odwołania do System.Data.SqlClient.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
5.0.2 Marzec 2023 r. Naprawiono wyciek pamięci podczas odczytu asynchronicznego, błędy w trybie redirect-mode TransactionScope, błędy Always Encrypted, błędy mechanizmu TDS RPC w przypadku dużych zapytań oraz zakleszczenia w transakcjach rozproszonych.
5.0.1 Październik 2022 r. Przywrócono HostNameInCertificate w platformie .NET Framework oraz naprawiono zakleszczenia związane z sygnałem attention, SqlConnectionStringBuilder.Encrypt, rejestrację anulowania, zawieszanie się zarządzanego składnika SNI, sortowanie UTF-8 oraz awarię domeny aplikacji składnika SNI.
5.0.0 Sierpień 2022 Wydanie ogólnie dostępne.

4.1

Wersja 4.1 trafiła do ogólnej dostępności w styczniu 2022 roku. Ostatnia poprawka miała numer 4.1.1 i została wydana we wrześniu 2022 roku.

  • Dodano Attestation Protocol=None dla enklaw zabezpieczeń opartych na wirtualizacji (VBS).
  • Równoległe wysyłanie żądań protokołu rozpoznawania SQL Server w systemach Linux i macOS, gdy funkcja MultiSubnetFailover jest włączona.
  • Naprawiono sprawdzanie listy unieważnionych certyfikatów podczas uwierzytelniania.
  • Naprawiono uwierzytelnianie Microsoft Entra, wartości null SqlBinary i rowversion oraz zachowanie sortacji UTF-8.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
4.1.1 Wrzesień 2022 r. Naprawiono błędy związane z listą unieważnionych certyfikatów, zrównoleglono żądania protokołu SQL Server Resolution Protocol dla MultiSubnetFailover, a także skorygowano błędy związane z uwierzytelnianiem Microsoft Entra, rowversion, UTF-8 oraz domeną aplikacji SNI.
4.1.0 Styczeń 2022 Wydanie ogólnie dostępne.

4.0

Wersja 4.0 trafiła do ogólnej dostępności w listopadzie 2021 roku. Ostatnia poprawka to 4.0.6, wydana w sierpniu 2024 roku.

  • Zmieniono domyślną wartość Encrypt z na falsetrue.
  • Dodano SqlCommand.EnableOptimizedParameterBinding do poleceń z wieloma parametrami.
  • Dodano SqlFileStream dla Windows poprzez implementację standardu .NET.
  • Dodano wsparcie dla współdzielonych instancji LocalDB w zarządzanym SNI.
  • Dodano GetFieldValue<T> i GetFieldValueAsync<T> dla XmlReader, TextReader, oraz Stream.
  • Usunięto przełącznik bezpieczeństwa z konfigurowalnej logiki powtórek. Próba powtórna pozostała wyłączona, dopóki aplikacja nie skonfigurowała dostawcy usług.
  • Zmieniono błędy uwierzytelniania Microsoft Entra tak, aby zgłaszały SqlException zamiast AggregateException.
  • Porzuciłem .NET Core 2.1.
  • Wersja 4.0.5 naprawiła ścieżkę degradacji szyfrowania CVE-2024-0056 oraz walidację łańcucha certyfikatów.

Ważna

Ponieważ szyfrowanie domyślnie jest stosowane w true wersjach 4.0 i nowszych, aktualizacja może ujawnić niezgodności między zaufaniem certyfikatów lub nazwą serwera. Nie wyłączaj szyfrowania, żeby obejść te błędy. Zainstaluj zaufany certyfikat serwera lub skonfiguruj walidację certyfikatów dla wdrożenia.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
4.0.6 Sierpień 2024 r. Naprawiono czyszczenie zdarzeń transakcji przed umieszczeniem w puli oraz obsługę limitu czasu ActiveDirectoryAuthenticationProvider.AcquireTokenAsync.
4.0.5 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.
4.0.4 Październik 2023 r. Naprawiono asynchroniczne ponowienia dla enklawy, mechanizm awaryjny LocalDB i zarządzanego SNI, wersje plików oraz korelację aktywności połączeń.
4.0.3 Kwiecień 2023 r. Zmniejszono ograniczanie tokenów kont w pamięci podręcznej i naprawiono awarie wywołań RPC TDS dla dużych zapytań.
4.0.2 Wrzesień 2022 r. Naprawiono błędy związane z listą unieważnionych certyfikatów, zrównoleglono żądania protokołu SQL Server Resolution Protocol dla MultiSubnetFailover, a także skorygowano błędy związane z uwierzytelnianiem Microsoft Entra, rowversion, UTF-8 oraz domeną aplikacji SNI.
4.0.1 Styczeń 2022 Dodano SuppressInsecureTLSWarning i poprawiono obsługę Kerberos w .NET 6, nazwy potoków LocalDB oraz współbieżne zapytania do enklawy.
4.0.0 Listopad 2021 r. Wydanie ogólnie dostępne.

3.1

Wersja 3.1 trafiła do ogólnej dostępności w marcu 2022 roku. Ostatnia poprawka miała numer 3.1.7 i została wydana w sierpniu 2024 roku.

  • Dodano Attestation Protocol=None dla enklaw VBS.
  • Dodano błędy SQL 42108 i 42109 do domyślnej listy błędów przejściowych.
  • Dodano wsparcie dla Windows ARM64 dla .NET Framework w wersji 3.1.2.
  • Ograniczono powtarzające się żądania tokenów Microsoft Entra dzięki cichemu pozyskiwaniu tokenów w wersji 3.1.3.
  • Naprawiono ścieżkę degradacji szyfrowania CVE-2024-0056 w wersji 3.1.5.
  • Naprawiono czyszczenie transakcji przed pulowaniem oraz obsługę limitu czasu tokenu Microsoft Entra w wersji 3.1.7.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
3.1.7 Sierpień 2024 r. Naprawiono problemy z czyszczeniem zdarzeń transakcyjnych przed zwróceniem do puli, limitami czasu uwierzytelniania, podpisywaniem zestawów oraz awarią domeny aplikacji związaną z SNI.
3.1.6 Sierpień 2024 r. Ta paczka nie była prawidłowo podpisana i nie była ogłoszona. Nie istnieje plik z informacjami o wydaniu z projektu źródłowego. Zamiast tego użyj wersji 3.1.7.
3.1.5 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.
3.1.4 Październik 2023 r. Naprawiono asynchroniczne ponowienia dla enklawy, mechanizm rezerwowy dla LocalDB i zarządzanego SNI, wersje plików, korelację aktywności połączeń oraz formatowanie EventSource.
3.1.3 Marzec 2023 r. Ograniczono dławienie tokenów Microsoft Entra za pomocą AcquireTokenSilent i naprawiono błędy operacji TDS RPC w przypadku dużych zapytań.
3.1.2 luty 2023 Dodano wsparcie dla .NET Framework Windows ARM64 oraz poprawiono bezpieczeństwo wątków z listą prób, zablokowania transakcji rozproszonych, sortowanie UTF-8 oraz walidację procedur przechowywanych.
3.1.1 Sierpień 2022 Naprawiono wartości null SqlBinary, awarie protokołu Kerberos w środowisku .NET 6 oraz błędy odwołania do obiektu o wartości null podczas uwierzytelniania Microsoft Entra.
3.1.0 Marzec 2022 r. Wydanie ogólnie dostępne.

3.0

Wersja 3.0 weszła do ogólnej dostępności w czerwcu 2021 roku. Ostatnią łatką była wersja 3.0.1, wydana we wrześniu 2021 roku.

  • Dodano konfigurowalną logikę powtórek dla operacji połączenia i poleceń. W wersji 3.0 pozostało opcjonalne za Switch.Microsoft.Data.SqlClient.EnableRetryLogic.
  • Dodano liczniki EventCounters dla aktywności połączeń i puli.
  • Dodano Active Directory Default uwierzytelnianie za pośrednictwem Azure.Identity.
  • Dodano rejestrację dostawcy przechowywania klucza z zakresem połączenia i poleceń.
  • Dodano preferencję adresu IP TCP.
  • Zmieniono uwierzytelnianie zarządzanej tożsamości przypisanej przez użytkownika tak, aby używało identyfikatora klienta zamiast identyfikatora obiektu w User Id.
  • Zmieniono wartości zerowe SQL rowversion tak, aby zwracały DBNull zamiast pustej tablicy bajtów. Przełącznik AppContext zachował starsze zachowanie.
  • Podniesiono minimalną docelową wersję platformy .NET Framework z 4.6 do 4.6.1.

Dostawcy przechowywania kluczy systemowych mają pierwszeństwo przed dostawcami zarejestrowanymi na połączeniu lub poleceniu od wersji 3.0. Zmień nazwę niestandardowego dostawcy, jeśli jego nazwa koliduje z wbudowanym dostawcą.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
3.0.1 Wrzesień 2021 Naprawiono problemy z blokowaniem otwierania połączeń Microsoft Entra, stanem eskalacji transakcji, wymaganym szyfrowaniem, rekurencyjnym ponawianiem prób i zakleszczeniami oraz połączeniami nienadającymi się do użycia.
3.0.0 Czerwiec 2021 Wydanie ogólnie dostępne.

2.1

Wersja 2.1 trafiła do ogólnej dostępności w listopadzie 2020 roku. Ostatnia łatka to wersja 2.1.7, wydana w styczniu 2024 roku.

  • Rozszerzono funkcję Always Encrypted o obsługę platform .NET Standard 2.0.
  • Dodano wsparcie dla bezpiecznej enklawy na Unix dla .NET Core oraz na platformach .NET Standard 2.1.
  • Dodano Active Directory Device Code Flow oraz uwierzytelnianie za pomocą tożsamości zarządzanej.
  • Dodano punkty dostosowywania dla uwierzytelniania interaktywnego i uwierzytelniania za pomocą kodu urządzenia.
  • Dodano metadane rankingowe klasyfikacji wrażliwości.
  • Dodano element SqlConnection.ServerProcessId.
  • Dodano Command Timeout opcję połączenia jako domyślną dla poleceń utworzonych przez połączenie.
  • Wersja 2.1.7 naprawiła ścieżkę obniżenia szyfrowania CVE-2024-0056.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
2.1.7 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.
2.1.6 Kwiecień 2023 r. Naprawiono awarie wywołań RPC TDS w przypadku dużych zapytań w SqlCommand.ExecuteReaderAsync, konflikty domyślnego sortowania UTF-8 oraz zakleszczenia podczas wysyłania sygnału attention.
2.1.5 Sierpień 2022 Dodano walidację długości procedur składowanych CommandText oraz naprawiono uwierzytelnianie Kerberos w .NET 6 i SqlTypeWorkarounds.
2.1.4 Wrzesień 2021 Zapewnione połączenia zawodzą, gdy wymagane jest szyfrowanie, a stałe połączenia wchodzą w stan nieużyteczny.
2.1.3 Maj 2021 Zapobiegnięto uszkodzeniu danych transakcyjnych w przypadku otwartych zbiorów wyników oraz naprawiono warunek wyścigu SinglePhaseCommit i TransactionEnded.
2.1.2 Marzec 2021 r. Naprawiłem instancje z nazwami w Uniksie, błędne wyniki timeoutu, niebezpieczne przetwarzanie DTD, Kerberos SPN, brakujące zależności buforowania, śledzenie oraz nagłówki MARS.
2.1.1 Grudzień 2020 Stała systemowo przypisana zarządzana tożsamość w Azure Functions, Unix Kerberos i TCP keep-alive.
2.1.0 Listopad 2020 Wydanie ogólnie dostępne.

2.0

Wersja 2.0 trafiła do ogólnej dostępności w czerwcu 2020 roku. Ostatnią aktualizacją była wersja 2.0.1, wydana w sierpniu 2020 roku.

  • Dodano uwierzytelnianie Active Directory Integrated i Active Directory Interactive w środowiskach .NET Core i .NET Standard.
  • Dodano uwierzytelnianie Active Directory Service Principal.
  • Dodano Microsoft.Data.SqlClient.EventSource śledzenie.
  • Dodano obsługę TCP keep-alive na wielu platformach oraz opcjonalną zarządzaną implementację sieciową w systemie Windows na potrzeby testowania i debugowania. Ścieżka zarządzana nie obsługiwała uwierzytelniania systemu Windows nienależącego do domeny.
  • Dodano SqlBulkCopy.RowsCopied oraz uporządkowano wskazówki dotyczące kopiowania zbiorczego.
  • Dodano element SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry).
  • Dodano wsparcie dla Windows ARM dzięki zależnościMicrosoft.Data.SqlClient.SNI.runtime.
  • Rozpoczęto weryfikację certyfikatu serwera, gdy serwer wymusza szyfrowanie, w tym gdy parametry połączenia ustawiają Encrypt=false. Połączenia mogą się zerwać po tej aktualizacji, jeśli certyfikat nie jest zaufany lub jego nazwa nie zgadza się z serwerem.
  • Zmieniono obsługę skali parametrów dziesiętnych na stosowanie zaokrągleń zgodnych z SQL Server.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
2.0.1 Sierpień 2020 Dodano konfigurację uwierzytelniania sprzyjającą współistnieniu oraz naprawiono problemy z wygasaniem tokenów w puli, obsługą błędów przejściowych, buforowaniem enklaw i błędami natywnego SNI podczas logowania wstępnego.
2.0.0 Czerwiec 2020 r. Wydanie ogólnie dostępne.

1.1

Wersja 1.1 weszła do ogólnej dostępności w listopadzie 2019 roku. Ostatnia poprawka miała numer 1.1.4 i została wydana w marcu 2021 roku.

  • Dodano funkcję Always Encrypted z bezpiecznymi enklawami w obsługiwanych wersjach platform .NET Framework i .NET Core.
  • Dodano |DataDirectory| rozszerzenie AttachDBFilename do .NET Core.
  • Ulepszone odczyty asynchroniczne dzięki wielopaketowemu buforowaniu bufora docelowego.
  • Zmniejszono narzut związany z migawkami w TdsParserStateObject i SqlDataReader.
  • Naprawiono błędy nagłówków związane ze stanem przekroczenia limitu czasu oraz Multiple Active Result Sets (MARS) w późniejszych poprawkach.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
1.1.4 Marzec 2021 r. Poprawiono nieprawidłowe wyniki związane ze stanem limitu czasu oraz błędy w nagłówku MARS w .NET Framework 4.8 i nowszych wersjach.
1.1.3 Maj 2020 r. Uniemożliwiono dołączanie połączeń z puli przez przerwane transakcje oraz cofnięto regresywną poprawkę dotyczącą nagłówka MARS.
1.1.2 Kwiecień 2020 Dodano nazwy użytkowników do uwierzytelniania interaktywnego Active Directory oraz naprawiono zapamiętywanie haseł i nagłówki MARS TDS.
1.1.1 luty 2020 Przywrócono asynchroniczne SNIPacket zmiany powodujące zakleszczenia i skorygowano zakres zależności SNI.
1.1.0 Listopad 2019 Wydanie ogólnie dostępne.

1.0

Microsoft. Data.SqlClient 1.0 osiągnął ogólną dostępność w sierpniu 2019 roku. Ostatnia aktualizacja miała numer 1.0.19269.1 i została wydana we wrześniu 2019 roku.

  • Wprowadzono dostawcę Microsoft.Data.SqlClient dostarczanego oddzielnie.
  • Obsługiwane wersje .NET Framework 4.6 i nowsze, wersje .NET Core 2.1 i nowsze, a także standard .NET 2.0.
  • Dodano uwierzytelnianie Active Directory Interactive w programie .NET Framework.
  • Dodano Active Directory Password uwierzytelnianie dla .NET Core.
  • Dodano metadane klasyfikacji poufności danych na SqlDataReader.
  • Dodano wsparcie dla kolacji UTF-8 w SQL Server 2019.
  • Dodano wsparcie dla Always Encrypted w .NET Core.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
1.0.19269.1 Wrzesień 2019 Przywrócono SqlCommand.StatementCompleted, dodano brakujące SqlConnectionStringBuilder.Authentication i cofnięto niekompatybilną zmianę API SqlAuthenticationParameters.Resource.
1.0.19249.1 Wrzesień 2019 Naprawiono odczyt dużych wielopakietowych porcji danych w systemach Unix.
1.0.19239.1 Sierpień 2019 Wydanie ogólnie dostępne. Naprawiono ponowne użycie połączeń po niepowodzeniach transakcji, publikowanie informacji SNI, obsługę trybu niezmiennego względem globalizacji oraz rozszerzanie wartości null podczas kopiowania zbiorczego.

W przypadku aplikacji migrującej ze starszego dostawcy użyj Migrate from System.Data.SqlClient to Microsoft.Data.SqlClient zamiast opierać się wyłącznie na informacjach o wydaniu.

Opcjonalne notatki dotyczące wydania pakietu

Opcjonalne pakiety mają własne informacje o wydaniu. Począwszy od wersji 7.0.2 są wydawane w wersji zgodnej z głównym sterownikiem.

Package Informacje o wydaniu
Microsoft.Data.SqlClient.Extensions.Azure Notatki dotyczące wydania rozszerzenia Azure
Microsoft.Data.SqlClient.Extensions.Abstractions Informacje o wersji abstrakcji rozszerzeń
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Azure Key Vault Provider release notes

Nie odwołuj się bezpośrednio do Microsoft.Data.SqlClient.Internal.Logging. To wewnętrzna zależność współdzielona przez pakiety sterowników.

Oceń aktualizację

  1. Zidentyfikuj każdy sterownik oraz opcjonalną wersję pakietu używaną bezpośrednio lub przechodnie.
  2. Przeczytaj informacje o wydaniu dla każdej wersji pomniejszej i głównej, przez którą przechodzi aktualizacja.
  3. Sprawdź cykl wsparcia sterowników SqlClient pod kątem kompatybilności docelowego frameworka i bazy danych.
  4. Zaktualizuj wszystkie powiązane pakiety do kompatybilnych wersji.
  5. Zbuduj i testuj uwierzytelnianie, szyfrowanie, pulowanie połączeń, parametry, transakcje, powtórki, diagnostykę oraz wyniki wdrożenia.

Aby uzyskać polecenia instalacyjne i wdrożeniowe, zobacz Install, aktualizuj i wdrażaj Microsoft. Data.SqlClient.