Nouveautés chez Microsoft. Data.SqlClient

Microsoft. Data.SqlClient est livré indépendamment de .NET. Cet article résume les fonctionnalités significatives, les changements de comportement et les changements de compatibilité de chaque gamme de sortie. Les tableaux de publication incluent toutes les publications de paquets stables, y compris chaque correctif urgent et chaque paquet non répertorié. Pour chaque correction et mise à jour de dépendance, consultez les notes de version complètes dans le dépôt SqlClient.

Versions actuelles

Ligne de sortie Version la plus récente Date de sortie Support
7.0 7.0.3 Septembre 2026 Soutien à terme standard (STS)
6.1 6.1.7 Septembre 2026 Support à long terme (LTS)
Préversion 7.1 7.1.0-preview3.26238.4 Août 2026 Preview

N’utilisez pas les versions de prévisualisation en production. Les API et comportements des prévisualisations peuvent changer avant la disponibilité générale (GA).

Les tableaux de sortie et les résumés de disponibilité générale utilisent le mois de publication NuGet. L’article sur le cycle de vie liste les dates officielles de sortie, qui peuvent différer. Pour les fenêtres de support, voir le cycle de vie du support des pilotes SqlClient.

version préliminaire 7.1

La version préliminaire 7.1 étend le traitement par lots, la découverte de schémas, la mise en pool de connexions et les API Always Encrypted. Les changements jusqu’à la version 7.1.0-preview3 incluent :

  • SqlBatchprise en charge sur .NET Framework.
  • Surcharges asynchrones SqlConnection.GetSchemaAsync .
  • Aliases de chaînes de connexion telles que ColumnEncryption, ConnectTimeout, FailoverPartner, PacketSize, et WorkstationId.
  • Mappages de pseudo-colonnes SQL Graph pour $node_id, $edge_id, $from_id et $to_id dans SqlBulkCopy.
  • Application facultative du délai d’inactivité de la connexion.
  • Un mode de délai d’attente de connexion volontaire qui inclut le temps passé à attendre une connexion regroupée.
  • Poursuite du développement du pool de connexions expérimental basé sur des canaux.
  • Méthodes asynchrones sur les fournisseurs de stockage de clés Always Crypted. Le pilote n’appelle pas encore ces méthodes lors de l’exécution des commandes, donc elles ne rendent pas les opérations Always Encrypted existantes asynchrones.

SqlBatchCommand.CommandBehavior est pris en compte à partir de cette ligne. Les versions antérieures ignoraient cette propriété. L’option de connexion obsolète Type System Version=SQL Server 2000 génère maintenant une ArgumentException.

Preview3 modifie également la validation des certificats et de l’enclave. ServerCertificate compare toujours le fichier de certificat configuré avec le certificat présenté par le serveur. Un fichier invalide ou illisible échoue alors à la connexion au lieu de recourir à la validation du nom d’hôte. L’attestation en mode sécurisé virtuel (VSM) et en service de garde hôte (HGS) vérifie désormais que la clé publique de l’enclave est liée au rapport d’attestation signé. Testez à nouveau ces parcours lorsque vous quittez une version préliminaire antérieure.

Lisez les notes de version pour preview1, preview2 et preview3 avant de tester cette ligne.

7.0 STS

La version 7.0 a atteint une disponibilité générale en mars 2026. C’est la gamme STS actuelle.

Caractéristiques et changements

  • L’authentification Microsoft Entra fournie par le pilote est passée du package de base à Microsoft.Data.SqlClient.Extensions.Azure. Ajoutez le package d’extension lorsque vous utilisez un Active Directory mode d’authentification.
  • Le package de base ne dépend plus de Azure.Core, Azure.Identity, ni de Microsoft Authentication Library (MSAL).
  • SqlConnection.SspiContextProvider prend en charge la négociation personnalisée des jetons Kerberos et NTLM. L’identité du fournisseur fait partie de la clé du pool de connexion.
  • Le routage amélioré pour Azure SQL Hyperscale et les réplices de lecture nommées sont négociés automatiquement.
  • Des événements de diagnostic de commande, de connexion et de transaction fortement typés sont disponibles sur .NET Framework et les versions actuelles de .NET.
  • SqlConfigurableRetryFactory.BaselineTransientErrors Expose la liste d’erreurs transitoires par défaut du pilote.
  • Active Directory Password l’authentification est obsolète. Utilisez l’authentification interactive pour les applications utilisateurs, l’authentification par principal de service pour les services, ou l’identité managée pour les charges de travail hébergées sur Azure.
  • La prise en charge commence à partir de .NET Framework 4.6.2 et de .NET 8. Le pilote supporte également la compilation et l’exécution sur .NET 10.

Le multiplexage de paquets pour les lectures asynchrones reste une fonctionnalité en préversion et doit être activé explicitement dans la version 7.0. Testez les options de compatibilité avec des charges de travail de production et prévoyez une procédure de retour arrière.

Mises à jour

Version Publié Changements pertinents pour les clients
7.0.0 Mars 2026 Communiqué de disponibilité générale.
7.0.1 Avril 2026 Correction des requêtes de métadonnées SqlBulkCopy pour SQL Server 2016 et les pools SQL dédiés Azure Synapse Analytics, correction des métadonnées des champs vectoriels, ajout de la dépendance manquante à .NET Framework System.Data.Common, et ajout du transfert de type pour les abstractions d’authentification.
7.0.2 Juin 2026 Aligner le pilote principal et les packages associés, renforcer l’analyse des jetons TDS, corriger la gestion du cache de vérification des signatures d’Always Encrypted et corriger les erreurs dans les appels d’annulation et les appels avec tampon nul GetBytes et GetChars.
7.0.3 Septembre 2026 Mise à jour SNI vers la 6.0.3. Correction d’une régression liée à SqlBulkCopy pour les ouvertures de session qui ne peuvent pas lire sys.all_columns, d’une régression d’allocation mémoire lorsque le traçage est désactivé, de la validation ServerCertificate sur SNI managé, de la vérification de la clé d’attestation d’enclave pour Always Encrypted, et d’un mécanisme configurable de nouvelle tentative pour l’enregistrement d’un gestionnaire de résolution d’assembly à l’échelle du processus.

Important

À partir de la 7.0.2, aligner les références directes à Microsoft.Data.SqlClient, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, et Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Laissez Microsoft.Data.SqlClient.Internal.Logging se résoudre transitivement. Sur .NET Framework, les versions d’assemblage de Extensions.Azure, , et Internal.Logging sont passées de 1.0.0.0 à 7.0.0.0Extensions.Abstractions. Reconstruis l’application ou ajoute des redirections de liaison lorsque tu mets à jour ces paquets.

6.1 LTS

La version 6.1.0 est sortie en juillet 2025, mais a ensuite été retirée de la liste en raison de régressions critiques. La version 6.1.1, publiée en août 2025, a marqué la mise en place de la branche 6.1 LTS prise en charge.

Caractéristiques et changements

  • Prise en charge native du transport de vecteurs dans SQL Server 2025 via SqlVector<T>, initialement pour des vecteurs en virgule flottante à simple précision.
  • Un asset de référence .NET Standard 2.0 pour la compatibilité des bibliothèques. Cet asset n’est pas une implémentation à l’exécution. Les applications exécutables doivent utiliser un composant d’exécution pris en charge pour .NET ou .NET Framework.
  • Le multiplexage de paquets par option fonctionne pour les lectures asynchrones volumineuses et la gestion des terminaux pour la base de données SQL dans Microsoft Fabric.
  • Prise en charge améliorée de la compilation native Ahead-of-Time (AOT).
  • Réduction des allocations dans les chemins de connexion et de traitement TDS.
  • Les bases internes de l’extension publique de la Security Support Provider Interface (SSPI) ont été posées dans la version 7.0.

Ne déployez pas la version 6.1.0. La version 6.1.1 a annulé les changements affectés de détection et de relecture des paquets.

Mises à jour

Version Publié Changements pertinents pour les clients
6.1.0 Juillet 2025 Communiqué de disponibilité générale. Ce paquet n’a pas été répertorié à cause de régressions critiques. Ne l’utilisez pas.
6.1.1 Août 2025 Annulation des modifications de détection, de correction et de rejeu des paquets partiels introduites dans la version 6.1.0. Correction des assemblages de référence de vecteurs et de SqlVector<T>.Null.
6.1.2 Octobre 2025 Correction de l’initialisation précoce du compteur de performance, remplacement des fournisseurs d’authentification personnalisés et concurrence du pool qui empêchait l’utilisation de la taille maximale du pool configurée.
6.1.3 Novembre 2025 Ajouté IgnoreServerProvidedFailoverPartner pour les groupes de disponibilité de base et les ports personnalisés. Correction de l’initialisation anticipée des métriques EventSource.
6.1.4 Janvier 2026 Ajout de EnableMultiSubnetFailoverByDefault. Correction SqlDataAdapter des échecs de batching et des comptes négatifs de connexions actives dans les métriques du pool.
6.1.5 Avril 2026 Suppression du traitement inutile lié au Nom principal de service (SPN) et au Système de noms de domaine (DNS) pour l’authentification non intégrée, modification de ExecuteScalar pour propager les erreurs serveur renvoyées après les données, et correction des types de métadonnées de vecteur.
6.1.6 Juin 2026 Ajout de la prise en charge facultative du broker Windows Web Account Manager (WAM), renforcement de l’analyse des jetons TDS, correction des échecs de signature des clés maîtresses de colonne mises en cache et correction de la validation des arguments GetChars.
6.1.7 Septembre 2026 Mise à jour SNI vers la 6.0.3. Correction de la validation sur ServerCertificate SNI géré, de la vérification de la clé d’attestation de l’enclave Always Encrypted, du comportement de nouvelle tentative de connexion AccessTokenCallback, et de la nouvelle tentative configurable enregistrant un gestionnaire de résolution d’assembly à l’échelle du processus.

Lignes de sorties précédentes

Les lignes de sortie suivantes ne sont plus prises en charge. Utilisez leurs résumés lorsque vous planifiez une mise à niveau sur plusieurs versions de pilotes.

6.0

La version 6.0 a atteint une disponibilité générale en janvier 2025. Le dernier correctif était la 6.0.5, sortie en janvier 2026.

  • Ajout du support JSON natif de SQL Server via Microsoft.Data.SqlTypes.SqlJson, incluant les chemins de lecture, d’écriture, de streaming et de copie en masse.
  • Ajout de charges utiles de diagnostic publiques et fortement typées pour les événements de commande, de connexion et de transaction.
  • Ajout de OpenAsync(SqlConnectionOverrides, CancellationToken), y compris OpenWithoutRetry.
  • Ajout de la prise en charge de DateOnly et TimeOnly dans les paramètres structurés DataTable et SqlDataRecord.
  • Ajout du support .NET 9.
  • Suppression des ressources d’exécution pour .NET Standard et .NET 6. Les cibles prises en charge devinrent .NET Framework 4.6.2 et versions ultérieures, ainsi que .NET 8 et versions ultérieures.
  • Limité EnableOptimizedParameterBinding aux commandes textuelles.

Mises à jour

Version Publié Changements pertinents pour les clients
6.0.0 Janvier 2025 Communiqué de disponibilité générale. Ce paquet n’est pas listé sur NuGet, et les notes en amont ne documentent pas la raison.
6.0.1 Janvier 2025 Correction des API de référence SqlClientDiagnostic, des avertissements TLS pour les versions antérieures et des dépendances.
6.0.2 Avril 2025 Correction des échecs possibles de réception sur socket liés à des valeurs nulles, des SqlJson API de référence, des paramètres de sortie au format JSON et des dépendances.
6.0.3 Octobre 2025 Empêchement du remplacement des fournisseurs d’authentification personnalisés et correction d’un problème de concurrence du pool qui sous-utilisait Max Pool Size.
6.0.4 Novembre 2025 Ajouté Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner pour les groupes de disponibilité de base utilisant des ports TCP personnalisés.
6.0.5 Janvier 2026 Correction de la gestion des valeurs nulles du RPC par lots SqlDataAdapter, ajout de Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault, et mise à jour des dépendances.

5.2

La version 5.2 a été disponible en février 2024. Le dernier patch était la 5.2.3, sortie en avril 2025.

  • Ajout de SqlConnection.AccessTokenCallback pour l’obtention asynchrone de jetons, compatible avec les pools.
  • Ajout de SqlBatch et de SqlBatchCommand dans .NET 6 et les versions ultérieures.
  • Ajout de la prise en charge de SqlDiagnosticListener sur .NET Standard.
  • Ajout de 64 bits SqlBulkCopy.RowsCopied64. La propriété plus ancienne RowsCopied reste un entier 32 bits.
  • Ajout de l’Active Directory Workload Identity authentification.
  • Ajout du support .NET 8 et des plateformes big-endian.
  • Modification de UseOneSecFloorInTimeoutCalculationDuringLogin pour utiliser true par défaut.
  • Utilisé NegotiateAuthentication pour le SSPI géré sur .NET 7 et versions ultérieures.

Mises à jour

Version Publié Changements pertinents pour les clients
5.2.0 Février 2024 Communiqué de disponibilité générale.
5.2.1 Mai 2024 Correction des connexions Linux aux instances nommées avec ports, des paramètres table datetimeoffset(n), des OpenAsync différés, et de la préservation de AccessTokenCallback par SqlConnection.Clone().
5.2.2 Août 2024 Délais fixes de token, connexions SNI socket gérées, ciblage d’assemblage, tentatives SSPI, lectures de types définies par l’utilisateur, et données de lecteurs chiffrés. Paquets d’identité mis à jour pour CVE-2024-35255.
5.2.3 Avril 2025 Correction des échecs possibles de réception sur socket liés à des valeurs nulles et des incohérences des assemblys de référence, autorisation des numéros d’erreur transitoires négatifs et mise à jour des dépendances.

5,1

La version 5.1 a atteint une disponibilité générale en janvier 2023. Le dernier patch était la 5.1.9, sortie en janvier 2026.

  • Ajout du support .NET 6 et suppression de .NET Core 3.1.
  • Ajout de la prise en charge de DateOnly et TimeOnly pour les valeurs de paramètres et GetFieldValue.
  • Ajout de TLS 1.3 en .NET et des chemins natifs SQL Server Network Interface (SNI).
  • Ajouté ServerCertificate pour obtenir une correspondance exacte des certificats avec Encrypt=Mandatory et Encrypt=Strict.
  • Ajout du support Windows ARM64 pour .NET Framework.
  • Le parseur de chaînes SqlConnectionEncryptOption est désormais public.
  • La version 5.1.3 a corrigé le chemin de rétrogradation du chiffrement CVE-2024-0056 et la validation de la chaîne de certificats.

Mises à jour

Version Publié Changements pertinents pour les clients
5.1.0 Janvier 2023 Communiqué de disponibilité générale.
5.1.1 Mars 2023 Correction du signalement des erreurs d’Always Encrypted, des transactions en mode redirection, de la limitation du débit des jetons, des échecs TDS RPC sur les requêtes volumineuses et de la gestion des valeurs nulles GetBytesAsync.
5.1.2 Octobre 2023 Correction des instances utilisateur SQL Express, des nouvelles tentatives liées aux enclaves, de LocalDB, des valeurs du générateur de chaînes de connexion, de la conversion de configuration SqlConnectionEncryptOption et des erreurs transitoires OpenAsync.
5.1.3 Janvier 2024 CVE-2024-0056 corrigé et validation de la chaîne de certificats.
5.1.4 Janvier 2024 Correction d’un blocage de transactions distribuées .NET et mise à jour Azure.Identity pour CVE-2023-36414.
5.1.5 Janvier 2024 Correction du nettoyage des transactions avant le pooling et des échecs de conversion de date et d’heure avec Always Encrypted. Dépendances mises à jour d’IdentityModel pour CVE-2024-21319.
5.1.6 Août 2024 Correction de OpenAsync, de l’expiration du délai d’authentification et des échecs liés aux données en attente du lecteur chiffré. Dépendances d’identité mises à jour pour CVE-2024-35255 et instances mises en cache TokenCredential.
5.1.7 Avril 2025 Correction d’un possible échec de réception sur socket lié à une valeur nulle, alignement des assemblies de source et de référence, et mise à jour des dépendances.
5.1.8 Novembre 2025 Ajout de Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, correction de la gestion de la marque d’ordre des octets UTF-8 lors de la copie en masse, modernisation de la création de MSAL et mise à jour des dépendances.
5.1.9 Janvier 2026 J’ai déplacé SqlStatistics le timing vers Environment.TickCount et mis à jour les dépendances spécifiques au framework.

5.0

La version 5.0 a été disponible en août 2022. Le dernier patch était la 5.0.2, sorti en mars 2023.

  • Ajout de TDS 8.0 via Encrypt=Strict. Le mode strict lance TLS avant l’échange de connexion TDS et valide toujours le certificat serveur.
  • Changé SqlConnectionStringBuilder.Encrypt de bool à SqlConnectionEncryptOption.
  • Types CLR de SQL Server déplacés vers le package Microsoft.SqlServer.Server, versionné séparément.
  • Ajout des options de connexion Server SPN et Failover Server SPN.
  • Ajout de la prise en charge des alias Windows SQL Server dans la version actuelle de .NET.
  • Ajout de SqlDataSourceEnumerator sous Windows.
  • J’ai abandonné le framework .NET 4.6.1.

Important

Le changement de type SqlConnectionStringBuilder.Encrypt constitue une rupture de compatibilité binaire. Les types retirés de Microsoft.Data.SqlClient.Server nécessitent également des modifications de source pour utiliser Microsoft.SqlServer.Server. Recompiler les applications et les bibliothèques, mettre à jour les espaces de noms et vérifier les conflits d’espaces de noms lorsque System.Data.SqlClient est toujours référencé.

Mises à jour

Version Publié Changements pertinents pour les clients
5.0.0 Août 2022 Communiqué de disponibilité générale.
5.0.1 Octobre 2022 Restauration de HostNameInCertificate sur .NET Framework et correction des interblocages d’attention, SqlConnectionStringBuilder.Encrypt, de l’enregistrement d’annulation, des blocages de SNI managé, du classement UTF-8 et d’un plantage de domaine d’application lié à SNI.
5.0.2 Mars 2023 Correction d’une fuite de mémoire lors de la lecture asynchrone, du mode de redirection TransactionScope, des erreurs Always Encrypted, des échecs RPC TDS liés aux requêtes volumineuses et des interblocages de transactions distribuées.

4.1

La version 4.1 a atteint une disponibilité générale en janvier 2022. Le dernier patch était la 4.1.1, sortie en septembre 2022.

  • Ajout de Attestation Protocol=None pour les enclaves de sécurité basée sur la virtualisation (VBS).
  • Requêtes du protocole de résolution SQL Server parallélisées sur Linux et macOS lorsque MultiSubnetFailover est activé.
  • Vérification fixe de la liste de la révocation de certificats lors de l’authentification.
  • Correction de l’authentification Microsoft Entra, des valeurs null SqlBinary et rowversion, ainsi que du comportement de collation UTF-8.

Mises à jour

Version Publié Changements pertinents pour les clients
4.1.0 Janvier 2022 Communiqué de disponibilité générale.
4.1.1 Septembre 2022 Correction des échecs liés à la liste de révocation des certificats, parallélisation des requêtes du protocole de résolution SQL Server pour MultiSubnetFailover, et correction des défaillances liées à l’authentification Microsoft Entra, à rowversion, à UTF-8, à SNI et au domaine d’application.

4,0

La version 4.0 a été disponible en novembre 2021. Le dernier patch était la 4.0.6, sortie en août 2024.

  • Changement de valeur Encrypt par défaut de de false à true.
  • Ajouté SqlCommand.EnableOptimizedParameterBinding pour des commandes avec de nombreux paramètres.
  • Ajouté SqlFileStream pour Windows via l’implémentation .NET Standard.
  • Ajout du support des instances LocalDB partagées dans SNI géré.
  • Ajouté GetFieldValue<T> et GetFieldValueAsync<T> pour XmlReader, TextReader, et Stream.
  • Suppression de l’interrupteur de sécurité de la logique de réessayage configurable. Retry restait désactivé jusqu’à ce qu’une application configure un fournisseur.
  • Les échecs d’authentification à Microsoft Entra génèrent désormais SqlException au lieu de AggregateException.
  • J’ai abandonné .NET Core 2.1.
  • La version 4.0.5 a corrigé le chemin de rétrogradation du chiffrement CVE-2024-0056 et la validation de la chaîne de certificats.

Important

Parce que le chiffrement est activé par défaut à partir de la version 4.0, une mise à jour peut révéler des problèmes de confiance des certificats ou de non-correspondance de nom de serveur. Ne désactivez pas le chiffrement pour contourner ces erreurs. Installer un certificat serveur de confiance ou configurer la validation des certificats pour le déploiement.

Mises à jour

Version Publié Changements pertinents pour les clients
4.0.0 Novembre 2021 Communiqué de disponibilité générale.
4.0.1 Janvier 2022 Ajout et correction de Kerberos .NET 6, noms de pipes LocalDB et requêtes d’enclave concurrentesSuppressInsecureTLSWarning.
4.0.2 Septembre 2022 Correction des échecs liés à la liste de révocation des certificats, parallélisation des requêtes du protocole de résolution SQL Server pour MultiSubnetFailover, et correction des défaillances liées à l’authentification Microsoft Entra, à rowversion, à UTF-8, à SNI et au domaine d’application.
4.0.3 Avril 2023 Réduction de la limitation des jetons de comptes mis en cache et correction des échecs RPC TDS liés aux requêtes volumineuses.
4.0.4 Octobre 2023 Correction des problèmes liés aux nouvelles tentatives asynchrones pour l’enclave, au mécanisme de repli pour LocalDB et le SNI managé, aux versions de fichiers et à la corrélation de l’activité des connexions.
4.0.5 Janvier 2024 CVE-2024-0056 corrigé et validation de la chaîne de certificats.
4.0.6 Août 2024 Nettoyage des événements transactionnels fixés avant le pooling et ActiveDirectoryAuthenticationProvider.AcquireTokenAsync la gestion du timeout.

3.1

La version 3.1 a atteint une disponibilité générale en mars 2022. Le dernier patch était la 3.1.7, sorti en août 2024.

  • Ajout de Attestation Protocol=None pour les enclaves VBS.
  • Ajout des erreurs SQL 42108 et 42109 à la liste d’erreurs transitoires par défaut.
  • Ajout du support Windows ARM64 pour .NET Framework dans la version 3.1.2.
  • Réduction des demandes répétées de jeton Microsoft Entra grâce à l’acquisition silencieuse de jeton dans la version 3.1.3.
  • Correction du chemin de rétrogradation du chiffrement CVE-2024-0056 dans la version 3.1.5.
  • Correction du nettoyage des transactions avant la mise en pool et de la gestion du délai d’expiration des jetons Microsoft Entra dans la version 3.1.7.

Mises à jour

Version Publié Changements pertinents pour les clients
3.1.0 mars 2022 Communiqué de disponibilité générale.
3.1.1 Août 2022 Correction des valeurs nulles de SqlBinaryrowversion, des échecs Kerberos dans .NET 6 et des erreurs de référence nulles lors de l’authentification Microsoft Entra.
3.1.2 Février 2023 Ajout du support .NET Framework Windows ARM64 et correction de la sécurité des threads par liste de réessays, blocages de transactions distribuées, collation UTF-8 et validation des procédures stockées.
3.1.3 Mars 2023 Réduction de la limitation des jetons Microsoft Entra avec AcquireTokenSilent et correction des échecs RPC TDS liés aux requêtes volumineuses.
3.1.4 Octobre 2023 Correction des retentions asynchrones de l’enclave, du repli LocalDB et SNI géré, des versions de fichiers, de la corrélation d’activité de connexion et du formatage EventSource.
3.1.5 Janvier 2024 CVE-2024-0056 corrigé et validation de la chaîne de certificats.
3.1.6 Août 2024 Ce colis n’était pas correctement signé et non listé. Aucun fichier de note de sortie en amont n’existe. Utilisez plutôt la 3.1.7.
3.1.7 Août 2024 Correction du nettoyage des événements de transaction avant la mise en pool, des délais d’expiration de l’authentification, de la signature des assemblys et d’un plantage de domaine d’application SNI.

3.0

La version 3.0 a été disponible en juin 2021. Le dernier patch était la 3.0.1, sortie en septembre 2021.

  • Ajout d’une logique de réessayage configurable pour les opérations de connexion et de commande. Dans la version 3.0, cette fonctionnalité restait activable uniquement via Switch.Microsoft.Data.SqlClient.EnableRetryLogic.
  • Ajout d’EventCounters pour l’activité de connexion et de pool.
  • Ajout de l’authentification Active Directory Default via Azure.Identity.
  • Ajout de l’enregistrement du fournisseur de stockage de clés Always Encrypted à portée de connexion et commande.
  • Ajout de la préférence d’adresse IP TCP.
  • Modification de l’authentification de l’identité managée assignée par l’utilisateur pour utiliser l’ID client au lieu de l’ID d’objet dans User Id.
  • Modifié les valeurs NULL SQL rowversion pour renvoyer DBNull au lieu d’un tableau d’octets vide. Un commutateur AppContext a conservé l’ancien comportement.
  • Augmentation de l’objectif minimum du cadre .NET de 4.6 à 4.6.1.

Les fournisseurs de stockage de clés système ont la priorité sur ceux enregistrés sur une connexion ou une commande à partir de la version 3.0. Renommer un fournisseur personnalisé si son nom entre en conflit avec un fournisseur intégré.

Mises à jour

Version Publié Changements pertinents pour les clients
3.0.0 Juin 2021 Communiqué de disponibilité générale.
3.0.1 Septembre 2021 Correction du blocage de l’ouverture des connexions Microsoft Entra, de l’état de promotion des transactions, du chiffrement requis, de la récursion des nouvelles tentatives et des interblocages, ainsi que des connexions inutilisables.

2.1

La version 2.1 a été disponible en novembre 2020. Le dernier patch était la 2.1.7, sortie en janvier 2024.

  • Extension de Toujours Chiffré aux plateformes .NET Standard 2.0 prises en charge.
  • Ajout du support sécurisé de l’enclave sur Unix pour .NET Core et sur les plateformes .NET Standard 2.1.
  • Ajout de Active Directory Device Code Flow et de l’authentification par identité gérée.
  • Ajout de points d’extension pour l’authentification interactive et l’authentification par code d’appareil.
  • Ajout des métadonnées de rang de classification de sensibilité.
  • Ajout de SqlConnection.ServerProcessId.
  • J’ai ajouté l’option Command Timeout de connexion comme référence par défaut pour les commandes créées par une connexion.
  • La version 2.1.7 a corrigé le chemin de rétrogradation du chiffrement CVE-2024-0056.

Mises à jour

Version Publié Changements pertinents pour les clients
2.1.0 Novembre 2020 Communiqué de disponibilité générale.
2.1.1 Décembre 2020 Identité managée fixée attribuée au système dans Azure Functions, Unix Kerberos et TCP keep-alive.
2.1.2 mars 2021 Correction des instances nommées Unix, des résultats erronés liés au délai d’expiration, du traitement non sécurisé des DTD, des SPN Kerberos, des dépendances de mise en cache manquantes, du traçage et des en-têtes MARS.
2.1.3 Mai 2021 Correction de la corruption des données de transaction avec des jeux de résultats ouverts et correction d’une condition de concurrence SinglePhaseCommitetTransactionEnded.
2.1.4 Septembre 2021 Des connexions assurées échouent lorsque le chiffrement est nécessaire et des connexions fixes entrent dans un état inutilisable.
2.1.5 Août 2022 Ajout de la validation de la longueur des procédures CommandText stockées et correction de l’authentification Kerberos dans .NET 6 et de SqlTypeWorkarounds.
2.1.6 Avril 2023 Correction des échecs RPC TDS liés aux requêtes volumineuses dans SqlCommand.ExecuteReaderAsync, des conflits de collation UTF-8 par défaut et des interblocages lors de l’envoi d’un signal d’attention.
2.1.7 Janvier 2024 CVE-2024-0056 corrigé et validation de la chaîne de certificats.

2.0

La version 2.0 a atteint sa disponibilité générale en juin 2020. Le dernier correctif était la 2.0.1, sorti en août 2020.

  • Ajout de l’authentification Active Directory Integrated et Active Directory Interactive pour .NET Core et .NET Standard.
  • Ajout de l’Active Directory Service Principal authentification.
  • Ajout du Microsoft.Data.SqlClient.EventSource traçage.
  • Ajout d’un mécanisme TCP de maintien de connexion multiplateforme et d’une implémentation optionnelle de mise en réseau gérée sous Windows pour les tests et le débogage. Le chemin géré ne supportait pas l'Authentification Windows non-domaine.
  • Ajout de SqlBulkCopy.RowsCopied et réorganisation des indices de copie en masse.
  • Ajout de SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry).
  • Ajout du support Windows ARM via la Microsoft.Data.SqlClient.SNI.runtime dépendance.
  • A commencé à valider le certificat serveur lorsqu’un serveur force le chiffrement, y compris lorsque la chaîne de connexion définit Encrypt=false. Les connexions peuvent échouer après cette mise à niveau si le certificat n’est pas fiable ou si son nom ne correspond pas au serveur.
  • Modification de la gestion de l’échelle des paramètres décimaux pour utiliser un arrondi compatible SQL Server.

Mises à jour

Version Publié Changements pertinents pour les clients
2.0.0 Juin 2020 Communiqué de disponibilité générale.
2.0.1 Août 2020 Ajout d’une configuration d’authentification compatible avec la coexistence et correction de l’expiration des jetons mis en pool, de la gestion des erreurs transitoires, de la mise en cache de l’enclave et des erreurs natives SNI de préconnexion.

1.1

La version 1.1 a atteint une disponibilité générale en novembre 2019. Le dernier patch était la 1.1.4, sorti en mars 2021.

  • Ajout de Always Encrypted avec des enclaves sécurisées sur les cibles .NET Framework et .NET Core prises en charge.
  • Ajout |DataDirectory| d’une extension AttachDBFilename sur .NET Core.
  • Lectures asynchrones améliorées avec la mise en cache multipaquets cible-buffer.
  • Réduction de la surcharge liée aux instantanés dans TdsParserStateObject et SqlDataReader.
  • Correction des erreurs liées à l’état de temporisation et à l’en-tête Multiple Active Result Sets (MARS) dans des correctifs ultérieurs.

Mises à jour

Version Publié Changements pertinents pour les clients
1.1.0 Novembre 2019 Communiqué de disponibilité générale.
1.1.1 Février 2020 Annulation des changements asynchrones SNIPacket causant des blocages et correction de la plage de dépendance SNI.
1.1.2 Avril 2020 Ajout de noms d’utilisateur pour l’authentification interactive Active Directory et la persistance fixe des mots de passe et des en-têtes TDS MARS.
1.1.3 Mai 2020 Empêché les transactions avortées d’intégrer des connexions regroupées et inversé la correction régressive de l’en-tête MARS.
1.1.4 mars 2021 Correction des résultats incorrects liés à l’état de délai d’expiration et des erreurs d’en-tête MARS sur .NET Framework 4.8 et les versions ultérieures.

1.0

Microsoft. Data.SqlClient 1.0 a atteint la disponibilité générale en août 2019. Le dernier correctif était 1.0.19269.1, publié en septembre 2019.

  • Ajout du fournisseur Microsoft.Data.SqlClient distribué séparément.
  • Supportait .NET Framework 4.6 et versions ultérieures, .NET Core 2.1 et versions ultérieures, ainsi que .NET Standard 2.0.
  • Ajout de l’authentification Active Directory Interactive dans .NET Framework.
  • Ajout de l’authentification Active Directory Password sur .NET Core.
  • Ajout de métadonnées de classification de la sensibilité des données sur SqlDataReader.
  • Ajout du support de la compilation SQL Server 2019 UTF-8.
  • Ajout du support Always Encrypted sur .NET Core.

Mises à jour

Version Publié Changements pertinents pour les clients
1.0.19239.1 Août 2019 Communiqué de disponibilité générale. Correction de la réutilisation des connexions après des échecs de transaction, de la publication de SNI, de la gestion du mode de globalisation invariant et de l’élargissement des valeurs nulles lors de la copie en bloc.
1.0.19249.1 Septembre 2019 Correction des lectures de données multipaquets volumineuses sur Unix.
1.0.19269.1 Septembre 2019 Restauration de SqlCommand.StatementCompleted, ajout du SqlConnectionStringBuilder.Authentication manquant et annulation d’une modification incompatible de l’API SqlAuthenticationParameters.Resource.

Pour une application qui passe de l’ancien fournisseur, utilisez Migrer de System.Data.SqlClient vers Microsoft. Data.SqlClient au lieu de ne lire que les notes de version.

Notes de sortie optionnelles du paquet

Les packs optionnels ont leurs propres notes de sortie. À partir de la version 7.0.2, ils sont livrés en version alignée avec le pilote principal.

Package Notes de publication
Microsoft.Data.SqlClient.Extensions.Azure Notes de publication de l’extension Azure
Microsoft.Data.SqlClient.Extensions.Abstractions Notes de publication des abstractions d’extension
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Notes de publication d’Azure Key Vault Provider

Ne faites pas directement référence à Microsoft.Data.SqlClient.Internal.Logging. C’est une dépendance interne partagée par les packages de pilotes.

Évaluer une mise à jour

  1. Identifier chaque pilote et chaque version optionnelle du package utilisée directement ou de manière transitive.
  2. Lisez les notes de version pour chaque version mineure et majeure concernée par la mise à jour.
  3. Vérifiez le cycle de vie du support des pilotes SqlClient pour vérifier la compatibilité du framework cible et des bases de données.
  4. Mettez à jour tous les paquets associés vers des versions compatibles.
  5. Construisez et testez l’authentification de l’application, le chiffrement, le pooling de connexions, les paramètres, les transactions, les tentatives, les diagnostics et les résultats de déploiement.

Pour les commandes d’installation et de déploiement, voir Installer, mettre à jour et déployer Microsoft. Data.SqlClient.