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.0 7.0.3 Wrzesień 2026 r. Standardowe wsparcie terminowe (STS)
6.1 6.1.7 Wrzesień 2026 r. Obsługa długoterminowa (LTS)
Zapowiedź 7.1 7.1.0-preview3.26238.4 Sierpień 2026 r. Preview

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.

Zapowiedź 7.1

Linia podglądowa 7.1 rozszerza batch proces, odkrywanie schematów, pulowanie połączeń oraz Always Encrypted API. Zmiany wprowadzone do wersji 7.1.0-preview3 obejmują:

  • SqlBatchwsparcie dla .NET Framework.
  • Przeciążenia asynchroniczne SqlConnection.GetSchemaAsync .
  • 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.
  • Wymuszanie limitu czasu bezczynności połączenia jako opcji.
  • Opcjonalny tryb limitu czasu połączenia, który obejmuje czas oczekiwania na połączenie z puli.
  • Dalszy rozwój eksperymentalnej puli połączeń opartej na kanałach.
  • 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.

SqlBatchCommand.CommandBehavior jest uwzględniany od tego wiersza. Wcześniejsze wersje ignorowały tę własność. Przestarzała opcja połączenia Type System Version=SQL Server 2000 teraz zgłasza ArgumentException.

Preview3 zmienia także walidację certyfikatów i walidację enklaw. ServerCertificate zawsze porównuje skonfigurowany plik certyfikatu z certyfikatem prezentowanym przez serwer. Nieprawidłowy lub nieczytelny plik teraz powoduje awarię połączenia zamiast wracać do weryfikacji nazwy hosta. Poświadczanie enklawy w Wirtualnym trybie bezpiecznym (VSM) i usłudze Host Guardian Service (HGS) teraz weryfikuje, że klucz publiczny enklawy jest powiązany z podpisanym raportem poświadczenia. Przetestuj ponownie te ścieżki po przejściu z wcześniejszej wersji zapoznawczej.

Przeczytaj notatki do wersji preview1,preview2 i preview3 przed przetestowaniem tej linii.

7.0 STS

Wersja 7.0 trafiła do ogólnej dostępności w marcu 2026 roku. To aktualna linia STS.

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 dotyczące poleceń, połączeń i transakcji są dostępne w .NET Framework oraz w bieżącej platformie .NET.
  • 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 Framework 4.6.2 i .NET 8. 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.0 Marzec 2026 r. Wydanie ogólnie dostępne.
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.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.3 Wrzesień 2026 r. Zaktualizowałem SNI do wersji 6.0.3. Naprawiono regresję SqlBulkCopy dotyczącą logowań, które nie mogą odczytać sys.all_columns, regresję alokacji pamięci, gdy śledzenie jest wyłączone, walidację ServerCertificate w zarządzanym SNI, weryfikację klucza poświadczania enklawy Always Encrypted oraz konfigurowalną ponowną próbę rejestrowania programu obsługi rozpoznawania zestawów dla całego procesu.

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.0 Lipiec 2025 r. Wersja ogólnie dostępna. Ten pakiet został usunięty z listy z powodu krytycznych błędów regresyjnych. Nie używaj go.
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.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.3 Listopad 2025 r. Dodano to IgnoreServerProvidedFailoverPartner dla Basic Availability Groups i niestandardowych portów. Poprawiono wczesną inicjalizację metryk EventSource.
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.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.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.7 Wrzesień 2026 r. Zaktualizowałem SNI do wersji 6.0.3. Naprawiono ServerCertificate walidację zarządzanego SNI, weryfikację klucza poświadczania enklawy dla Always Encrypted, AccessTokenCallback działanie mechanizmu ponawiania połączenia oraz konfigurowalne ponawianie podczas rejestrowania globalnej dla procesu procedury obsługi rozpoznawania zestawów.

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 .NET Framework 4.6.2 i późniejsze wersje oraz .NET 8 i nowsze.
  • Ograniczono EnableOptimizedParameterBinding do poleceń tekstowych.

Nowości

Wersja Zwolniono Zmiany dostosowane do klienta
6.0.0 Styczeń 2025 r. Wydanie ogólnodostępne. Ten pakiet nie jest wymieniony w NuGet, a notatki w górnym systemie nie zawierają powodu.
6.0.1 Styczeń 2025 r. Poprawiono SqlClientDiagnostic API referencyjne, ostrzegania TLS na niższym poziomie oraz zależności.
6.0.2 Kwiecień 2025 Naprawione możliwe awarie gniazda odbiorowego, SqlJson API referencyjne, parametry wyjściowe JSON oraz zależności.
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.4 Listopad 2025 r. Dodano Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner dla grup Basic Availability Groups korzystających z niestandardowych portów TCP.
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.

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.0 luty 2024 r. Wydanie ogólnodostępne.
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.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.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.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.0 Styczeń 2023 r. Wydanie ogólnodostępne.
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.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.3 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.
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.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.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.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.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.9 Styczeń 2026 r. Przeniesiono Environment.TickCount harmonogram do SqlStatistics i zaktualizowano zależności specyficzne dla struktury.

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.0 Sierpień 2022 Wydanie ogólnodostępne.
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.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.

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.0 Styczeń 2022 Wydanie ogólnodostępne.
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.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.0 Listopad 2021 r. Wydanie ogólnodostępne.
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.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.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.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.5 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.
4.0.6 Sierpień 2024 r. Naprawiono czyszczenie zdarzeń transakcji przed umieszczeniem w puli oraz obsługę limitu czasu ActiveDirectoryAuthenticationProvider.AcquireTokenAsync.

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.0 Marzec 2022 r. Wydanie ogólnodostępne.
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.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.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.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.5 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.
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.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.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.0 Czerwiec 2021 Wersja ogólnodostępna.
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.

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.0 Listopad 2020 Wydanie ogólnodostępne.
2.1.1 Grudzień 2020 Stała systemowo przypisana zarządzana tożsamość w Azure Functions, Unix Kerberos i TCP keep-alive.
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.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.4 Wrzesień 2021 Zapewnione połączenia zawodzą, gdy wymagane jest szyfrowanie, a stałe połączenia wchodzą w stan nieużyteczny.
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.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.7 Styczeń 2024 Naprawiono CVE-2024-0056 oraz weryfikację łańcucha certyfikatów.

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.0 Czerwiec 2020 r. Wydanie ogólnodostępne.
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.

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.0 Listopad 2019 Wydanie ogólnodostępne.
1.1.1 luty 2020 Przywrócono asynchroniczne SNIPacket zmiany powodujące zakleszczenia i skorygowano zakres zależności SNI.
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.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.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.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.19239.1 Sierpień 2019 Wydanie ogólnodostę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.
1.0.19249.1 Wrzesień 2019 Naprawiono odczyt dużych wielopakietowych porcji danych w systemach Unix.
1.0.19269.1 Wrzesień 2019 Przywrócono SqlCommand.StatementCompleted, dodano brakujące SqlConnectionStringBuilder.Authentication i cofnięto niekompatybilną zmianę API SqlAuthenticationParameters.Resource.

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.