Что нового в Microsoft. Data.SqlClient

Microsoft. Data.SqlClient поставляется независимо от .NET. В этой статье представлены основные функции, изменения поведения и изменения совместимости в каждой линейке релиза. Таблицы релизов включают все публикации стабильных пакетов, включая все хотфиксы и пакеты, отсутствующие в списке. Для каждого исправления и обновления зависимостей смотрите полные заметки к релизу в репозитории SqlClient.

Текущие выпуски

Линейка релиза Последняя версия Дата выпуска Support
7.0 7.0.3 Сентябрь 2026 г. Стандартный срок поддержки (STS)
6.1 6.1.7 Сентябрь 2026 г. Долгосрочная поддержка (LTS)
7.1 предварительная версия 7.1.0-preview3.26238.4 Август 2026 г. Preview

Не используйте предварительные релизы в продакшене. API и поведение предпросмотра могут изменяться до появления General Availability (GA).

Таблицы релизов и общие обзоры доступности используют месяц публикации NuGet. В статье о жизненном цикле перечислены официальные даты выпуска, которые могут различаться. Для окон поддержки см. жизненный цикл поддержки драйверов SqlClient.

Предварительная версия 7.1

В предварительной версии 7.1 расширена поддержка пакетной обработки, обнаружения схем, пула соединений и API Always Encrypted. Изменения вплоть до версии 7.1.0-preview3 включают:

  • SqlBatchподдержка на .NET Framework.
  • Асинхронные SqlConnection.GetSchemaAsync перегрузки.
  • Псевдонимы строк подключения, такие как ColumnEncryption, ConnectTimeout, FailoverPartner, PacketSize и WorkstationId.
  • Сопоставления псевдостолбцов SQL Graph для $node_id, $edge_id, $from_id и $to_id в SqlBulkCopy.
  • Соблюдение тайм-аута при подключении по согласию.
  • Режим тайм-аута подключения, включаемый по запросу и учитывающий время ожидания соединения из пула.
  • Дальнейшее развитие экспериментального пула соединений на основе каналов.
  • Асинхронные методы у поставщиков хранилища ключей Always Encrypted. Драйвер пока не вызывает эти методы при выполнении команд, поэтому они не делают существующие операции Always Encrypted асинхронными.

SqlBatchCommand.CommandBehavior обозначается начиная с этой строки. Ранние версии игнорировали это свойство. Устаревшая Type System Version=SQL Server 2000 опция соединения теперь выдает ArgumentException.

Preview3 также изменяет валидацию сертификатов и анклавов. ServerCertificate Всегда сравнивает настроенный файл сертификата с сертификатом, представленным сервером. Некорректный или нечитаемый файл теперь приводит к сбою соединения вместо резервного перехода к проверке имени хоста. Аттестация анклава с помощью Virtual Secure Mode (VSM) и Host Guardian Service (HGS) теперь проверяет, что открытый ключ анклава привязан к подписанному отчёту об аттестации. Повторно проверьте эти сценарии при переходе с более ранней предварительной версии.

Прочитайте примечания к релизу preview1, preview2 и preview3 перед тестированием этой линии.

7.0 STS

Версия 7.0 стала доступна в марте 2026 года. Это текущая линия STS.

Особенности и изменения

  • Аутентификация Microsoft Entra, предоставляемая драйвером, была перенесена из основного пакета в Microsoft.Data.SqlClient.Extensions.Azure. Добавляйте пакет расширений при использовании Active Directory режима аутентификации.
  • Основной пакет больше не зависит от Azure.Core, Azure.Identityили от Microsoft Authentication Library (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 г. Выпуск в широкую доступность.
7.0.1 Апрель 2026 г. Исправлены SqlBulkCopy запросы метаданных для SQL Server 2016 и выделенных пулов SQL Azure Synapse Analytics, исправлены метаданные векторных полей, добавлена отсутствующая зависимость от .NET Framework System.Data.Common и добавлено перенаправление типов для абстракций аутентификации.
7.0.2 Июнь 2026 г. Согласованы основной драйвер и сопутствующие пакеты, повышена надежность разбора токенов TDS, исправлена обработка кэша проверки подписей в Always Encrypted, а также устранены ошибки в вызовах отмены и вызовах с нулевым буфером GetBytes и GetChars.
7.0.3 Сентябрь 2026 г. Обновлен SNI до версии 6.0.3. Исправлена SqlBulkCopy регрессия для входа в систему, если невозможно прочитать sys.all_columns, регрессия выделения памяти при отключенной трассировке, проверка ServerCertificate в управляемом SNI, проверка ключа аттестации анклава Always Encrypted и настраиваемая повторная попытка регистрации обработчика разрешения сборок для всего процесса.

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 года, но позже была снята с публикации из-за критических регрессий. Версия 6.1.1, выпущенная в августе 2025 года, установила поддерживаемую линейку 6.1 LTS.

Особенности и изменения

  • Собственная передача векторов SQL Server 2025 через SqlVector<T>, изначально для векторов с плавающей запятой одинарной точности.
  • Эталонный ресурс .NET Standard 2.0 для совместимости с библиотеками. Этот ресурс не является реализацией для среды выполнения. Исполняемые приложения должны использовать поддерживаемый компонент среды выполнения .NET или .NET Framework.
  • Мультиплексирование пакетов по принципу opt-in для больших асинхронных чтений и обработки конечных точек для баз данных SQL в Microsoft Fabric.
  • Улучшенная поддержка нативной компиляции Ahead-of-Time (AOT).
  • Снижен объём выделения памяти при обработке соединений и TDS.
  • Внутренняя основа для расширения интерфейса поставщика общественной безопасности (SSPI) была добавлена в версии 7.0.

Не развёртывайте версию 6.1.0. Версия 6.1.1 отменила изменения, затрагивающие обнаружение затронутых пакетов и их повторное воспроизведение.

Релизы

Версия Выпущено Изменения, релевантные клиенту
6.1.0 Июль 2025 г. Выпуск в широкую доступность. Этот пакет не был выставлен на рынок из-за критических регрессий. Не используйте его.
6.1.1 Август 2025 г. Отменены изменения, связанные с обнаружением частичных пакетов, их исправлением и повторным воспроизведением, внесённые в версии 6.1.0. Исправлены векторные эталонные сборки и SqlVector<T>.Null.
6.1.2 Октябрь 2025 г. Исправлена ранняя инициализация счётчика производительности, замена пользовательских поставщиков аутентификации и параллельность пула, что не позволяло использовать установленный максимальный размер пула.
6.1.3 Ноябрь 2025 г. Добавлена поддержка IgnoreServerProvidedFailoverPartner для базовых групп доступности и настраиваемых портов. Исправлена преждевременная инициализация метрик EventSource.
6.1.4 Январь 2026 г. Добавлено EnableMultiSubnetFailoverByDefault. Исправлены SqlDataAdapter сбои при пакетной обработке и отрицательное число активных соединений в метриках пула.
6.1.5 Апрель 2026 г. Устранена ненужная обработка Service Principal Name (SPN) и Domain Name System (DNS) для неинтегрированной аутентификации, обеспечено распространение компонентом ExecuteScalar серверных ошибок, возвращаемых после данных, и исправлены типы метаданных векторов.
6.1.6 Июнь 2026 г. Добавлена поддержка брокера Windows Web Account Manager (WAM) с возможностью явного включения, усилена обработка токенов TDS, исправлены сбои проверки подписи кэшированного главного ключа столбца и исправлена проверка аргументов GetChars.
6.1.7 Сентябрь 2026 г. Обновлен SNI до версии 6.0.3. Исправлены ServerCertificate проверка в управляемом SNI, проверка ключа аттестации анклава Always Encrypted, поведение AccessTokenCallback при повторных попытках подключения и настраиваемая повторная попытка регистрации обработчика разрешения сборок для всего процесса.

Предыдущие линейки релизов

Следующие линии релиза больше не поддерживаются. Используйте их резюме при планировании обновления для нескольких версий драйверов.

6.0

Версия 6.0 стала доступна в январе 2025 года. Последний патч — версия 6.0.5, выпущенная в январе 2026 года.

  • Добавлена нативная поддержка JSON SQL Server через Microsoft.Data.SqlTypes.SqlJson, включая пути чтения, записи, потоковой передачи и массового копирования.
  • Добавлены общедоступные строго типизированные диагностические данные для событий команд, подключений и транзакций.
  • Добавлено OpenAsync(SqlConnectionOverrides, CancellationToken), включая OpenWithoutRetry.
  • Добавлена поддержка DateOnly и TimeOnly в структурированных параметрах SqlDataRecord и DataTable.
  • Добавлена поддержка .NET 9.
  • Удалены ресурсы .NET Standard и среды выполнения .NET 6. Поддерживаемыми целями стали .NET Framework 4.6.2 и более поздние версии, а также .NET 8 и более поздние версии.
  • Для EnableOptimizedParameterBinding доступны только текстовые команды.

Релизы

Версия Выпущено Изменения, релевантные клиенту
6.0.0 Январь 2025 Общедоступный выпуск. Этот пакет скрыт из списка на NuGet, и в примечаниях исходного проекта не указана причина.
6.0.1 Январь 2025 Исправлены SqlClientDiagnostic справочные API, предупреждения об устаревших версиях TLS и зависимости.
6.0.2 Апрель 2025 г. Исправлены возможные нулевые сбои приёма сокетов, SqlJson опорные API, параметры выхода JSON и зависимости.
6.0.3 Октябрь 2025 г. Предотвратили замену пользовательских провайдеров аутентификации и исправили параллелизм пула, который не в полной мере использовал Max Pool Size.
6.0.4 Ноябрь 2025 г. Добавлено Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner для базовых групп доступности, использующих кастомные TCP-порты.
6.0.5 Январь 2026 г. Исправлена SqlDataAdapter обработка нуля в пакетном RPC, добавлены Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefaultи обновлены зависимости.

5,2

Версия 5.2 стала доступна в феврале 2024 года. Последний патч — версия 5.2.3, выпущенная в апреле 2025 года.

  • Добавлено SqlConnection.AccessTokenCallback для асинхронного получения токенов, совместимого с пулом.
  • Добавлено SqlBatch и SqlBatchCommand в .NET 6 и более поздних версиях.
  • Добавлена поддержка SqlDiagnosticListener для .NET Standard.
  • Добавлено 64-разрядное SqlBulkCopy.RowsCopied64. Старое RowsCopied свойство остаётся 32-битным целым числом.
  • Добавлена Active Directory Workload Identity аутентификация.
  • Добавлены .NET 8 и поддержка платформы big-endian.
  • Изменили UseOneSecFloorInTimeoutCalculationDuringLogin по умолчанию на true.
  • Для управляемого SSPI в .NET 7 и более поздних версиях используется NegotiateAuthentication.

Релизы

Версия Выпущено Изменения, релевантные клиенту
5.2.0 Февраль 2024 г. Выпуск в широкую доступность.
5.2.1 Май 2024 г. Исправлены подключения к именованным экземплярам Linux с указанием портов, FireInfoMessageEventOnUserErrors, табличные параметры datetimeoffset(n), отложенный OpenAsync и сохранение AccessTokenCallback с помощью SqlConnection.Clone().
5.2.2 Август 2024 г. Фиксированные тайм-ауты токенов, управляемые соединения сокетов SNI, таргетирование ассемблера, повторы SSPI, пользовательские считывания типов и зашифрованные данные считывателя. Обновленные пакеты идентификации для CVE-2024-35255.
5.2.3 Апрель 2025 г. Исправлены возможные ошибки при получении данных из сокета, связанные со значением null, устранены несогласованности эталонных сборок, разрешены отрицательные номера временных ошибок и обновлены зависимости.

5.1

Версия 5.1 стала доступна в январе 2023 года. Последний патч — версия 5.1.9, выпущенная в январе 2026 года.

  • Добавили поддержку .NET 6 и отказались от .NET Core 3.1.
  • Добавлена поддержка DateOnly и TimeOnly для значений параметров и GetFieldValue.
  • Добавлена поддержка TLS 1.3 в .NET и в собственных путях SQL Server Network Interface (SNI).
  • Добавлено ServerCertificate для точного совпадения сертификатов с Encrypt=Mandatory и Encrypt=Strict.
  • Добавлена поддержка Windows ARM64 для .NET Framework.
  • Парсер строк SqlConnectionEncryptOption сделан общедоступным.
  • Версия 5.1.3 исправила путь понижения шифрования CVE-2024-0056 и проверку цепочки сертификатов.

Релизы

Версия Выпущено Изменения, релевантные клиенту
5.1.0 Январь 2023 г. Выпуск в широкую доступность.
5.1.1 Март 2023 г. Исправлены проблемы с сообщениями об ошибках Always Encrypted, транзакциями в режиме перенаправления, дросселированием токенов, сбоями TDS RPC при больших запросах и GetBytesAsync обработкой значений null.
5.1.2 Октябрь 2023 г. Исправлены пользовательские экземпляры SQL Express, повторные попытки для enclave, LocalDB, значения построителя строк подключения, преобразование конфигурации SqlConnectionEncryptOption и временные сбои OpenAsync.
5.1.3 Январь 2024 г. Исправлены CVE-2024-0056 и проверка цепочки сертификатов.
5.1.4 Январь 2024 г. Исправлена блокировка распределённых транзакций .NET и обновлена Azure.Identity для CVE-2023-36414.
5.1.5 Январь 2024 г. Исправлены очистка транзакций перед помещением в пул и сбои при преобразовании даты и времени в Always Encrypted. Обновленные зависимости IdentityModel для CVE-2024-21319.
5.1.6 Август 2024 г. Исправлены OpenAsync, тайм-аут аутентификации и сбои, связанные с ожидающими данными зашифрованного считывателя. Обновлены зависимости идентичности для CVE-2024-35255 и кэшированных TokenCredential экземпляров.
5.1.7 Апрель 2025 г. Исправлен возможный сбой при получении из сокета значения null, согласованы исходная и эталонная сборки, а также обновлены зависимости.
5.1.8 Ноябрь 2025 г. Добавлено Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, исправлено обработку UTF-8 байтовых порядковых знаков в массовом копировании, модернизировано создание MSAL и обновлены зависимости.
5.1.9 Январь 2026 г. Перенесли параметр timing в Environment.TickCount и обновили зависимости, зависящие от фреймворка.

5.0

Версия 5.0 стала доступна в августе 2022 года. Последний патч — версия 5.0.2, выпущенная в марте 2023 года.

  • Добавлена поддержка TDS 8.0 через Encrypt=Strict. Строгий режим запускает TLS до обмена входом в TDS и всегда проверяет сертификат сервера.
  • Изменил SqlConnectionStringBuilder.Encrypt с bool на SqlConnectionEncryptOption.
  • Переместили типы общего языка выполнения (CLR) SQL Server в отдельно версионированный Microsoft.SqlServer.Server пакет.
  • Добавлены варианты подключения Server SPN и Failover Server SPN.
  • Добавлена поддержка псевдонимов Windows SQL Server в текущей версии .NET.
  • Добавлено SqlDataSourceEnumerator в Windows.
  • Отказался от .NET Framework 4.6.1.

Important

Изменение типа SqlConnectionStringBuilder.Encrypt нарушает двоичную совместимость. Типы, удалённые из Microsoft.Data.SqlClient.Server, также требуют изменений в исходном коде для использования Microsoft.SqlServer.Server. Перекомпилировать приложения и библиотеки, обновить пространства имён и проверить конфликты пространств имён, если на System.Data.SqlClient всё ещё есть ссылки.

Релизы

Версия Выпущено Изменения, релевантные клиенту
5.0.0 Август 2022 г. Выпуск в широкую доступность.
5.0.1 Октябрь 2022 г. Восстановлено HostNameInCertificate на .NET Framework и исправлены тупики внимания, SqlConnectionStringBuilder.Encryptрегистрацию отмены, управляемые зависания SNI, коллинг UTF-8 и сбой домена приложений SNI.
5.0.2 Март 2023 г. Исправлены утечка памяти при асинхронном чтении, ошибки в режиме перенаправления TransactionScope, ошибки, связанные с Always Encrypted, сбои TDS RPC при больших запросах и взаимоблокировки в распределённых транзакциях.

4.1

Версия 4.1 стала доступна в январе 2022 года. Последний патч — 4.1.1, выпущенный в сентябре 2022 года.

  • Добавлено Attestation Protocol=None для анклавов безопасности на основе виртуализации (VBS).
  • Параллельные запросы протокола SQL Server Resolution Protocol в Linux и macOS, когда включён параметр MultiSubnetFailover.
  • Фиксированные проверки списка отзыва сертификатов во время аутентификации.
  • Исправлены проблемы с аутентификацией Microsoft Entra, значениями null SqlBinary и rowversion, а также с поведением сортировки UTF-8.

Релизы

Версия Выпущено Изменения, релевантные клиенту
4.1.0 Январь 2022 года Выпуск в широкую доступность.
4.1.1 Сентябрь 2022 года Исправлены сбои списка отозванных сертификатов, распараллелены запросы протокола SQL Server Resolution Protocol для MultiSubnetFailover, а также исправлены сбои аутентификации Microsoft Entra, rowversion, UTF-8 и SNI в доменах приложений.

4.0

Версия 4.0 стала доступна в ноябре 2021 года. Последний патч — версия 4.0.6, выпущенная в августе 2024 года.

  • Изменил значение Encrypt по умолчанию из false на true.
  • Добавлено SqlCommand.EnableOptimizedParameterBinding для команд с множеством параметров.
  • Добавлено SqlFileStream для Windows через стандартную реализацию .NET.
  • Добавлена поддержка общих экземпляров LocalDB в управляемом SNI.
  • Добавлено GetFieldValue<T> и GetFieldValueAsync<T> для XmlReader, TextReader, и Stream.
  • Убран защитный переключатель из настраиваемой логики повторных попыток. Повторная попытка оставалась отключённой до тех пор, пока приложение не настроило провайдера.
  • Сбои аутентификации Microsoft Entra теперь вызывают SqlException вместо AggregateException.
  • Отказался от .NET Core 2.1.
  • Версия 4.0.5 исправила путь понижения шифрования CVE-2024-0056 и проверку цепочки сертификатов.

Important

Поскольку шифрование по умолчанию установлено true в версиях 4.0 и более поздних, обновление может выявить несоответствие доверия сертификатов или имён сервера. Не отключайте шифрование, чтобы обойти эти ошибки. Установите доверенный серверный сертификат или настройте проверку сертификатов для развертывания.

Релизы

Версия Выпущено Изменения, релевантные клиенту
4.0.0 Ноябрь 2021 г. Выпуск в широкую доступность.
4.0.1 Январь 2022 года Добавлены SuppressInsecureTLSWarning и исправлены .NET 6 Kerberos, имена каналов LocalDB и параллельные запросы к анклаву.
4.0.2 Сентябрь 2022 года Исправлены сбои списка отозванных сертификатов, распараллелены запросы протокола SQL Server Resolution Protocol для MultiSubnetFailover, а также исправлены сбои аутентификации Microsoft Entra, rowversion, UTF-8 и SNI в доменах приложений.
4.0.3 Апрель 2023 г. Снижено ограничение токенов для кэшируемых учётных записей и исправлены сбои TDS RPC при больших запросах.
4.0.4 Октябрь 2023 г. Исправлены повторные попытки асинхронных операций с enclave, резервный механизм для LocalDB и управляемого SNI, версии файлов и корреляция активности подключений.
4.0.5 Январь 2024 г. Исправлены CVE-2024-0056 и проверка цепочки сертификатов.
4.0.6 Август 2024 г. Исправлена очистка событий транзакций перед возвратом в пул и ActiveDirectoryAuthenticationProvider.AcquireTokenAsync обработка тайм-аута.

3.1

Версия 3.1 стала доступна в марте 2022 года. Последний патч — версия 3.1.7, выпущенная в августе 2024 года.

  • Добавлено Attestation Protocol=None для VBS-анклавов.
  • В список временных ошибок по умолчанию добавлены ошибки SQL 42108 и 42109.
  • Добавлена поддержка Windows ARM64 для .NET Framework в версии 3.1.2.
  • Снижено количество повторных запросов на токены Microsoft Entra благодаря тихому приобретению токенов в версии 3.1.3.
  • Исправлен путь понижения шифрования CVE-2024-0056 в версии 3.1.5.
  • Исправлена очистка транзакций перед пулом и обработка тайм-аута токена Microsoft Entra в версии 3.1.7.

Релизы

Версия Выпущено Изменения, релевантные клиенту
3.1.0 Март 2022 г. Выпуск в широкую доступность.
3.1.1 Август 2022 г. Исправлены значения нулевой SqlBinaryверсии строки, сбои .NET 6 Kerberos и ошибки аутентификации Microsoft Entra с нулевой ссылкой.
3.1.2 Февраль 2023 Добавлена поддержка Windows ARM64 для .NET Framework, а также исправлены проблемы с потокобезопасностью списка повторных попыток, взаимоблокировками распределённых транзакций, сортировкой UTF-8 и валидацией хранимых процедур.
3.1.3 Март 2023 г. Уменьшено ограничение частоты токенов Microsoft Entra с помощью AcquireTokenSilent и устранены сбои TDS RPC при выполнении крупных запросов.
3.1.4 Октябрь 2023 г. Исправлены повторения асинхронных энклавов, резервный вариант LocalDB и управляемый SNI, версии файлов, корреляцию активности соединения и форматирование EventSource.
3.1.5 Январь 2024 г. Исправлены CVE-2024-0056 и проверка цепочки сертификатов.
3.1.6 Август 2024 г. Этот пакет не был должным образом подписан и был исключён из списка. Файл примечаний к выпуску в вышестоящем источнике отсутствует. Используйте версию 3.1.7.
3.1.7 Август 2024 г. Исправлена очистка событий транзакций перед пулированием, тайм-ауты аутентификации, подпись ассемблера и сбой домена приложения SNI.

3.0

Версия 3.0 стала доступна в июне 2021 года. Последний патч — версия 3.0.1, выпущенная в сентябре 2021 года.

  • Добавлена настраиваемая логика повторных попыток для операций соединения и команд. В версии 3.0 она по-прежнему была доступна только при явном включении под Switch.Microsoft.Data.SqlClient.EnableRetryLogic.
  • Добавлены счётчики событий для мониторинга активности соединений и пула подключений.
  • Добавлена Active Directory Default аутентификация через Azure.Identity.
  • Добавлена регистрация поставщика хранилища ключей Always Encrypted на уровне соединения и на уровне команды.
  • Добавлено предпочтение IP-адреса TCP.
  • Изменили управляемую идентификационную аутентификацию, назначенную пользователем, чтобы использовать client ID вместо object ID в User Id.
  • Изменили значения NULL типа SQL rowversion: теперь они возвращают DBNull вместо пустого массива байтов. Переключатель AppContext сохранял старое поведение.
  • Минимальная цель .NET Framework была повышена с 4.6 до 4.6.1.

Поставщики системного хранилища имеют приоритет над провайдерами, зарегистрированными на соединении или команде, начиная с версии 3.0. Переименуйте пользовательского провайдера, если его имя конфликтует с именем встроенного провайдера.

Релизы

Версия Выпущено Изменения, релевантные клиенту
3.0.0 Июнь 2021 года Выпуск в широкую доступность.
3.0.1 Сентябрь 2021 г. Исправлены проблемы, связанные с блокировками при открытии соединений Microsoft Entra, состоянием повышения транзакции, обязательным шифрованием, рекурсивными повторами попыток и взаимоблокировками, а также с неработоспособными соединениями.

2.1

Версия 2.1 стала доступна в ноябре 2020 года. Последний патч — версия 2.1.7, выпущенная в январе 2024 года.

  • Добавлена поддержка Extended Always Encrypted на платформах .NET Standard 2.0.
  • Добавлена поддержка защищённых анклавов в .NET Core на Unix и на всех платформах .NET Standard 2.1.
  • Добавлены Active Directory Device Code Flow и аутентификация с использованием управляемой идентификации.
  • Добавлены точки расширения для настройки интерактивной аутентификации и аутентификации с кодом устройства.
  • Добавлены метаданные о ранге классификации чувствительности.
  • Добавлено SqlConnection.ServerProcessId.
  • Параметр подключения Command Timeout добавлен в качестве параметра по умолчанию для команд, созданных с помощью подключения.
  • Версия 2.1.7 исправила путь понижения шифрования CVE-2024-0056.

Релизы

Версия Выпущено Изменения, релевантные клиенту
2.1.0 Ноябрь 2020 г. Выпуск в широкую доступность.
2.1.1 Декабрь 2020 г. Исправлены проблемы с управляемой идентичностью, назначаемой системой, в Функции Azure, Kerberos в Unix и TCP keep-alive.
2.1.2 Март 2021 г. Исправлены именованные экземпляры в Unix, некорректные результаты при тайм-ауте, небезопасная обработка DTD, SPN Kerberos, отсутствующие зависимости для кэширования, трассировка и заголовки MARS.
2.1.3 май 2021 года Предотвращено повреждение данных транзакций при открытых наборах результатов и устранено состояние гонки между SinglePhaseCommit и TransactionEnded.
2.1.4 Сентябрь 2021 г. Гарантируется, что соединения выходят из строя, когда требуется шифрование, а фиксированные соединения переходят в непригодное состояние.
2.1.5 Август 2022 г. Добавлена проверка длины сохранённой процедуры CommandText и исправлена аутентификация .NET 6 Kerberos и SqlTypeWorkarounds.
2.1.6 Апрель 2023 г. Исправлены сбои TDS RPC при больших запросах, конфликты сопоставления UTF-8 по умолчанию в SqlCommand.ExecuteReaderAsync, а также взаимоблокировки при отправке сигнала attention.
2.1.7 Январь 2024 г. Исправлены CVE-2024-0056 и проверка цепочки сертификатов.

2.0

Версия 2.0 стала доступна в общем виде в июне 2020 года. Последний патч был 2.0.1, выпущенный в августе 2020 года.

  • Добавлена аутентификация Active Directory Integrated и Active Directory Interactive для .NET Core и .NET Standard.
  • Добавлена Active Directory Service Principal аутентификация.
  • Добавлена Microsoft.Data.SqlClient.EventSource трассировка.
  • Добавлены кроссплатформенный механизм TCP keep-alive и опциональная управляемая сетевая реализация в Windows для тестирования и отладки. Управляемый путь не поддерживал проверку подлинности Windows вне домена.
  • Добавил SqlBulkCopy.RowsCopied и заказал подсказки для массового копирования.
  • Добавлено SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry).
  • Добавлена поддержка Windows ARM через зависимостьMicrosoft.Data.SqlClient.SNI.runtime.
  • Началась проверка сертификата сервера, когда сервер требует шифрования, в том числе если в строке подключения задано значение Encrypt=false. Соединения могут сбойтись после этого обновления, если сертификат не является доверенным или его имя не совпадает с сервером.
  • Изменение обработки масштаба десятичных параметров на использование совместимого с SQL Server округления.

Релизы

Версия Выпущено Изменения, релевантные клиенту
2.0.0 Июнь 2020 г. Выпуск в широкую доступность.
2.0.1 Август 2020 г. Добавлена конфигурация аутентификации, обеспечивающая совместимость, и исправлены время истечения срока действия токенов в пуле, обработка временных ошибок, кэширование анклава и ошибки предварительного входа native SNI.

1.1

Версия 1.1 стала доступна в ноябре 2019 года. Последний патч — 1.1.4, выпущенный в марте 2021 года.

  • Добавлена поддержка Always Encrypted с защищёнными анклавами для поддерживаемых целевых платформ .NET Framework и .NET Core.
  • Добавлена поддержка расширения |DataDirectory| в AttachDBFilename в .NET Core.
  • Улучшены асинхронные операции чтения благодаря многопакетному кэшированию целевого буфера.
  • Уменьшенный снимок сверху в TdsParserStateObject и SqlDataReader.
  • Исправлены в последующих патчах ошибки заголовков timeout-state и Multiple Active Result Sets (MARS).

Релизы

Версия Выпущено Изменения, релевантные клиенту
1.1.0 Ноябрь 2019 г. Выпуск в широкую доступность.
1.1.1 Февраль 2020 г. Отменили асинхронные SNIPacket изменения, вызывавшие тупиковые блокировки, и исправили диапазон зависимостей SNI.
1.1.2 Апрель 2020 г. Добавлены имена пользователей для аутентификации Active Directory Interactive и исправлены сохранение пароля и заголовки MARS TDS.
1.1.3 Май 2020 г. Предотвратили подключение соединений из пула к прерванным транзакциям и откатили регрессивное исправление заголовка MARS.
1.1.4 Март 2021 г. Исправлены некорректные результаты состояния тайм-аута и ошибки заголовков MARS в .NET Framework 4.8 и более поздних версиях.

1.0

Microsoft. Data.SqlClient 1.0 стал доступен в августе 2019 года. Последний патч — 1.0.19269.1, выпущенный в сентябре 2019 года.

  • Добавлен отдельно поставляемый поставщик Microsoft.Data.SqlClient.
  • Поддерживался .NET Framework 4.6 и более поздние версии, .NET Core 2.1 и более поздние, а также .NET Standard 2.0.
  • Добавлена Active Directory Interactive аутентификация на .NET Framework.
  • Добавлена Active Directory Password аутентификация на .NET Core.
  • Добавлены метаданные классификации чувствительности данных для SqlDataReader.
  • Добавлена поддержка параметров сортировки UTF-8 в SQL Server 2019.
  • Добавлена поддержка Always Encrypted на .NET Core.

Релизы

Версия Выпущено Изменения, релевантные клиенту
1.0.19239.1 Август 2019 г. Выпуск в широкую доступность. Исправлены проблемы с повторным использованием соединения после сбоев транзакций, публикацией SNI, обработкой в режиме инвариантности к глобализации и расширением значений NULL при пакетном копировании.
1.0.19249.1 Сентябрь 2019 Исправлено чтение больших объёмов данных в несколько пакетов на Unix.
1.0.19269.1 Сентябрь 2019 Восстановлен SqlCommand.StatementCompleted, добавлен отсутствующий SqlConnectionStringBuilder.Authentication и отменено несовместимое изменение API SqlAuthenticationParameters.Resource.

Если приложение переходит со старого поставщика данных, используйте Переход с 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.