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

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

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

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

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

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

Хронология версий

Эти релизы изменили то, как существующие приложения подключаются. Сначала они указаны как самые новые. Отметьте все варианты между вашей текущей версией и версией, на которую вы переходите.

Версия Change Что делать
7.0 Аутентификация Microsoft Entra переносится в Microsoft.Data.SqlClient.Extensions.Azure. Добавляйте пакет расширений при использовании Active Directory режима аутентификации.
5.0 Encrypt=Strict добавляет TDS 8.0. SqlConnectionStringBuilder.Encrypt изменяется с bool на SqlConnectionEncryptOption. Перекомпилируйте код, использующий SqlConnectionStringBuilder.Encrypt.
4.0 Encrypt по умолчанию использует true. Доверяйте серверному сертификату или устанавливайте TrustServerCertificate=true только для разработки.

Аутентификация Microsoft Entra переходит в пакет расширения в версии 7.0

Начиная с версии 7.0, основной пакет больше не зависит от Azure.Core, Azure.Identityили MSAL. Режимы Active Directory аутентификации требуют Microsoft.Data.SqlClient.Extensions.Azure. Без этого пакета Open или OpenAsync вызывает System.ArgumentException, когда сервер запрашивает аутентификацию Microsoft Entra, с сообщением вроде:

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.

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

Обязательное шифрование и TDS 8.0 в версии 5.0

В версии 5.0 был добавлен Encrypt=Strict, который использует TDS 8.0. Строгий режим запускает TLS до этапа входа в TDS и всегда проверяет сертификат сервера, поэтому TrustServerCertificate не действует. Строгий режим требует SQL Server 2022 или новее, База данных SQL Azure или Управляемый экземпляр SQL Azure. Тот же релиз изменил SqlConnectionStringBuilder.Encrypt с bool на SqlConnectionEncryptOption. Это изменение нарушает бинарную совместимость, поэтому перекомпилируйте приложения и библиотеки, которые задают это свойство.

Параметр Encrypt по умолчанию имеет значение true в версии 4.0

Начиная с версии 4.0, соединения по умолчанию шифруются, и выполняется проверка сертификата сервера. До 4.0 по умолчанию был false. После обновления соединение с сервером, использующим самоподписанный сертификат или сертификат, имя которого не совпадает с именем сервера в строке подключения, завершается ошибкой цепочки сертификатов или несоответствия имени. Установите сертификат, которому доверяет клиент, и подключитесь, используя имя, указанное в сертификате. Только для разработки можно установить TrustServerCertificate=true. Для подробностей см. раздел Шифрование и проверка сертификатов в Microsoft.Data.SqlClient.

7.1 STS

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

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

  • SqlBatchподдержка на .NET Framework.
  • Асинхронные SqlConnection.GetSchemaAsync перегрузки.
  • Отчётность по идентичности приложения через SqlConnection.RegisteredApplication и версию 2 полезной нагрузки TDS USERAGENT. Задайте свойство перед открытием соединения. Значение не входит в ключ пула соединений, поэтому повторно используемое физическое соединение сообщает, какое приложение его создало. Идентификация приложения — это телеметрия, предоставляемая клиентом, а не основа для авторизации или других решений по безопасности.
  • Псевдонимы строк подключения, такие как ColumnEncryption, ConnectTimeout, FailoverPartner, PacketSize и WorkstationId.
  • Сопоставления псевдостолбцов SQL Graph для $node_id, $edge_id, $from_id и $to_id в SqlBulkCopy.
  • Тип SQL Server json в коллекции DataTypes, возвращаемой SqlConnection.GetSchema, включая Azure SQL.
  • Принудительное применение при добровольном включении через Switch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior=false. Стандартный тайм-аут в режиме простоя — 300 секунд; значение 0 отключает истечение в режиме простоя. Стандартное поведение пула не изменилось.
  • Режим тайм-аута подключения, включаемый по желанию, включающий время ожидания соединения из пула через Switch.Microsoft.Data.SqlClient.UseOverallConnectTimeoutForPoolWait=true. Переключатель по умолчанию установлен на false.
  • Расширенная поддержка транзакций, восстановление после разрыва соединения, прогрев пула, очистка неактивных соединений, возврат утекших соединений и диагностика в пуле соединений V2. Пул остаётся в стадии оценки и требует Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2.
  • Асинхронные методы у поставщиков хранилища ключей Always Encrypted. Драйвер пока не вызывает эти методы при выполнении команд, поэтому они не делают существующие операции Always Encrypted асинхронными.
  • Обновили нативные пакеты SNI до версии 7.1.0. Поддерживаемыми целями для приложений остаются .NET 8 и более поздние версии, а также .NET Framework 4.6.2 и более поздние версии.

Изменения в совместимости

  • SqlConnectionStringBuilder.TransparentNetworkIPResolution является устаревшим в .NET Framework. Вместо этого используйте MultiSubnetFailover. Это изменение добавляет предупреждение на этапе компиляции; оно не меняет поведение во время выполнения или значение по умолчанию ни одного из вариантов.
  • SqlBatchCommand.CommandBehavior и переданные в SqlBatch.ExecuteReaderCommandBehavior учитываются. Ранние версии игнорировали эти настройки.
  • Устаревшая Type System Version=SQL Server 2000 опция подключения теперь вызывает исключение ArgumentException при открытии соединения. Используйте поддерживаемое значение, например Latest.

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

Ключевые исправления

  • Исправлена ошибка, из-за которой пуловые соединения оставались неисправными после отката TransactionScope, что могло привести к сбою при последующем вызове BeginTransaction().
  • Исправлены литеральные имена серверов IPv6 через именованные каналы в управляемом SNI.
  • Исправлены переполнения крупных decimal параметров с явной точностью и масштабированием, DateOnly параметры и параметры таблицы с использованием sql_variant, а также пропуск потоковых данных столбцов после IsDBNull().
  • Исправлены счётчики пула соединений, ненужная активность таймера обслуживания пула и регрессии пропускной способности открытия/закрытия пула соединений V2.
  • Исправлена настраиваемая логика повторных попыток, регистрирующая постоянный обработчик разрешения ассемблера для всего процесса в современном .NET. Пользовательские сборки повторных попыток должны находиться в базовом каталоге приложений; зависимости, загруженные после построения провайдера, должны разрешаться с помощью обычного разрешения зависимостей приложений или обработчика, предоставленного приложением.

Релизы

Версия Выпущено Изменения, релевантные клиенту
7.1.1 Сентябрь 2026 г. Исправлена ошибка для параметров decimal и SqlDecimal с нулевым значением, точность которых равна их масштабу, в ArgumentException. Исправлены сбои при открытии соединения, возникающие, когда выполняется ClearPool или ClearAllPools во время незавершённого открытия. Пул соединений V2 теперь проверяет срок действия токена доступа перед повторным использованием соединения из пула, что соответствует поведению пула по умолчанию. Исправление токена касается только приложений, которые включили пул соединений V2.
7.1.0 Сентябрь 2026 г. Релиз общедоступной версии, включая накопленные изменения из цикла предварительного просмотра 7.1.

Important

Обновите напрямую используемые пакеты-компаньоны до 7.1.1 вместе с основным драйвером, включая Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions и Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Пусть Microsoft.Data.SqlClient.Internal.Logging разрешается с учетом транзитивных зависимостей. Согласованные сборки сохраняют AssemblyVersion 7.0.0.0, поэтому обновление с 7.0.2, 7.0.3 или 7.1.0 не требует новых перенаправлений привязки .NET Framework. При обновлении с 7.0.0 или 7.0.1 ознакомьтесь с однократными изменениями версии сборки, описанными в примечаниях к выпуску 7.0.2.

Релиз Azure Key Vault Provider 7.1.0 реализует методы поставщика асинхронного хранилища ключей и исправляет рост кэша и дублирующиеся клиенты ключей в условиях параллелизма. Эти асинхронные методы полезны при прямых вызовах провайдера; пути выполнения команд драйвера по-прежнему используют синхронные операции с ключом. Выпуски Azure extension и абстракций расширений выравнивают версии без изменений в публичном API.

Компаньонные пакеты также поставляются под версией 7.1.1 без каких-либо функциональных изменений, так что вы можете обновить все пакеты семейства до одной и той же версии. Подробнее см. заметки о выпуске Azure Key Vault Provider 7.1.1, заметки о выпуске Azure extension 7.1.1 и заметки о выпуске extension abstractions 7.1.1.

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

7.0 STS

Версия 7.0 стала доступна в марте 2026 года. Поддержка сохраняется до 17 декабря 2026 года, через три месяца после выхода версии 7.1.

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

  • Аутентификация 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 и .NET Framework.
  • SqlConfigurableRetryFactory.BaselineTransientErrors открывает стандартный список временных ошибок драйвера.
  • Active Directory Password Аутентификация устарела. Используйте интерактивную аутентификацию для пользовательских приложений, аутентификацию субъекта-службы для сервисов или управляемую идентификацию для рабочих нагрузок, размещённых в Azure.
  • Целевой уровень поддержки начинается с .NET 8 и .NET Framework 4.6.2. Драйвер также поддерживает сборку и работу на .NET 10.

Мультиплексирование пакетов для асинхронного чтения остаётся функцией предварительного просмотра и в версии 7.0 включается только по явному запросу. Тестируйте переключатели совместимости на рабочих нагрузках в производственной среде и сохраняйте возможность отката.

Релизы

Версия Выпущено Изменения, релевантные клиенту
7.0.3 Сентябрь 2026 г. Обновлен SNI до версии 6.0.3. Исправлены SqlBulkCopy доступ к метаданным, трассировка выделений, ServerCertificate проверка на управляемом SNI, проверка ключей аттестации анклава Always Encrypted, значения TNIR по умолчанию AccessTokenCallback в .NET Framework, сохранение состояния аутентификации и настраиваемое разрешение сборки для повторных попыток. Конфликтующие настройки аутентификации SSPI и токена теперь выдают InvalidOperationException. Согласованное расширение Azure исправляет парсинг authority Entra для соединений Dataverse и Dynamics 365.
7.0.2 Июнь 2026 г. Согласованы основной драйвер и сопутствующие пакеты, повышена надежность разбора токенов TDS, исправлена обработка кэша проверки подписей в Always Encrypted, а также устранены ошибки в вызовах отмены и вызовах с нулевым буфером GetBytes и GetChars.
7.0.1 Апрель 2026 г. Исправлены SqlBulkCopy запросы метаданных для SQL Server 2016 и выделенных пулов SQL Azure Synapse Analytics, исправлены метаданные векторных полей, добавлена отсутствующая зависимость от .NET Framework System.Data.Common и добавлено перенаправление типов для абстракций аутентификации.
7.0.0 Март 2026 г. Выпуск в широкую доступность.

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

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

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

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 8 и более поздние, а также .NET Framework 4.6.2 и более поздние версии.
  • Для EnableOptimizedParameterBinding доступны только текстовые команды.

Релизы

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

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

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

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

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

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

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

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.1 Сентябрь 2021 г. Исправлены проблемы, связанные с блокировками при открытии соединений Microsoft Entra, состоянием повышения транзакции, обязательным шифрованием, рекурсивными повторами попыток и взаимоблокировками, а также с неработоспособными соединениями.
3.0.0 Июнь 2021 года Выпуск в широкую доступность.

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

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.1 Август 2020 г. Добавлена конфигурация аутентификации, обеспечивающая совместимость, и исправлены время истечения срока действия токенов в пуле, обработка временных ошибок, кэширование анклава и ошибки предварительного входа native SNI.
2.0.0 Июнь 2020 г. Выпуск в широкую доступность.

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

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

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