Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft.Data.SqlClient viene distribuito indipendentemente da .NET. Questo articolo riassume le caratteristiche significative, i cambiamenti comportamentali e i cambiamenti di compatibilità in ogni linea di rilascio. Le tabelle di rilascio includono ogni pubblicazione di pacchetti stabili, inclusi ogni hotfix e pacchetto non elencato. Per ogni aggiornamento di correzione e dipendenza, consulta le note complete di rilascio nel repository SqlClient.
Versioni correnti
| Linea di rilascio | Versione più recente | Data di rilascio | Support |
|---|---|---|---|
| 7.1 | 7.1.0 | Settembre 2026 | Supporto standard a termine (STS) |
| 7.0 | 7.0.3 | Settembre 2026 | Supporto standard a termine (STS) |
| 6.1 | 6.1.7 | Settembre 2026 | Supporto a lungo termine (LTS) |
Non usare le versioni preview in produzione. Le API e il comportamento delle anteprime possono cambiare prima della disponibilità generale (GA).
Le tabelle delle release e i riassunti della disponibilità generale utilizzano il mese di pubblicazione NuGet. L'articolo sul ciclo di vita elenca le date di rilascio ufficiali, che possono variare. Per le finestre di supporto, vedi ciclo di vita del supporto driver SqlClient.
7.1 STS
La versione 7.1 è arrivata a disponibilità generale a settembre 2026. È l'attuale linea STS.
Caratteristiche e cambiamenti
-
SqlBatchsupporto su .NET Framework. - Sovraccarichi asincroni
SqlConnection.GetSchemaAsync. - Segnalazione dell'identità dell'applicazione attraverso
SqlConnection.RegisteredApplicatione la versione 2 del payload TDS USERAGENT. Imposta la proprietà prima di aprire la connessione. Il valore non fa parte della chiave del pool di connessione, quindi una connessione fisica riutilizzata indica l'applicazione che l'ha creata originariamente. L'identità dell'applicazione è una telemetria fornita dal client, non costituisce una base per l'autorizzazione o altre decisioni di sicurezza. - Alias di stringhe di connessione come
ColumnEncryption,ConnectTimeout,FailoverPartner,PacketSize, eWorkstationId. - Pseudo-colonne di grafo SQL di mapping per
$node_id,$edge_id,$from_ide$to_idinSqlBulkCopy. - Il tipo SQL Server
jsonnella raccoltaDataTypesrestituita daSqlConnection.GetSchema, incluso in Azure SQL. - Applicazione tramite adesione volontaria
Connection Idle TimeouttramiteSwitch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior=false. Il timeout di inattività predefinito è di 300 secondi;0disabilita la scadenza del tempo inattivo. Il comportamento predefinito del pooling rimane invariato. - Una modalità di timeout per la connessione opt-in che include il tempo trascorso in attesa di una connessione dal pool tramite
Switch.Microsoft.Data.SqlClient.UseOverallConnectTimeoutForPoolWait=true. L'interruttore è impostato sufalseper impostazione predefinita. - Supporto ampliato per transazioni, recupero di connessioni rotte, riscaldamento pool, rimozione delle connessioni inattive, recupero delle connessioni non rilasciate e diagnostica nel pool di connessione V2. Il pool rimane in valutazione e richiede ulteriori azioni
Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2. - Metodi asincroni sui provider di key store Always Encrypted. Il driver non chiama ancora questi metodi durante l'esecuzione dei comandi, quindi non rendono asincrone le operazioni Always Encrypted esistenti.
- Ho aggiornato i pacchetti SNI nativi alla versione 7.1.0. I target applicativi supportati rimangono .NET Framework 4.6.2 e versioni successive e .NET 8 e versioni successive.
Cambiamenti di compatibilità
-
SqlConnectionStringBuilder.TransparentNetworkIPResolutionè obsoleto su .NET Framework. Utilizzare inveceMultiSubnetFailover. Questa modifica aggiunge un avviso in tempo di compilazione; non modifica il comportamento a runtime né il valore predefinito di nessuna delle due opzioni. -
SqlBatchCommand.CommandBehaviore iCommandBehaviorpassati aSqlBatch.ExecuteReadervengono rispettati. Le versioni precedenti ignoravano queste impostazioni. - L'opzione di connessione
Type System Version=SQL Server 2000obsoleta ora generaArgumentExceptionquando apri la connessione. Usa un valore supportato comeLatest.
La versione 7.1 include anche le correzioni per la convalida dei certificati e dell'enclave incluse nelle versioni 6.1.7 e 7.0.3. Quando abiliti la validazione del certificato su SNI gestito, ServerCertificate confronta il file del certificato configurato con il certificato presentato dal server. Un file invalido o illeggibile fa fallire la connessione invece di bypassare il controllo del certificato configurato. L'attestazione dell'enclave tramite Virtual Secure Mode (VSM) e Host Guardian Service (HGS) verifica che la chiave pubblica dell'enclave sia legata al report di attestazione firmato. Riprova questi percorsi quando aggiorni da una versione precedente priva di queste correzioni.
Correzioni principali
- Risolte le connessioni pool che rimanevano rotte dopo un
TransactionScoperollback, che poteva causare il fallimento di una chiamata successivaBeginTransaction(). - Corretti i nomi letterali dei server IPv6 su Named Pipes in SNI gestito.
- Corretti overflow di parametri di grandi dimensioni
decimalcon precisione e scala esplicite, parametriDateOnlye parametri con valori di tabella che usanosql_variant, e i casi in cui i dati di colonna trasmessi in streaming venivano saltati dopoIsDBNull(). - Corretti i contatori del pool di connessione, l'inutile attività del timer di manutenzione del pool e le regressioni del throughput di apertura/chiusura V2 del pool di connessione.
- Corretta la logica di ritentazione configurabile che registra un gestore permanente di risoluzione assembly a livello di processo su .NET moderno. Gli assembly di tentativi personalizzati devono trovarsi nella directory base dell'applicazione; le dipendenze caricate dopo la costruzione del provider devono risolversi tramite la normale risoluzione delle dipendenze applicative o un gestore fornito dall'applicazione.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 7.1.0 | Settembre 2026 | Rilascio in disponibilità generale, inclusi i cambiamenti cumulativi rispetto al ciclo di anteprima 7.1. |
Importante
Aggiorna i pacchetti companion referenziati direttamente alla versione 7.1.0 insieme al driver core, inclusi Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions e Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Consenti a Microsoft.Data.SqlClient.Internal.Logging di risolversi transitivamente. Gli assembly allineati mantengono AssemblyVersion 7.0.0.0, quindi l'aggiornamento dalla 7.0.2 o 7.0.3 non richiede nuovi redirect di binding del framework .NET. Quando aggiorni dalla versione 7.0.0 o 7.0.1, consulta le modifiche alla versione assembly da effettuare una sola volta descritte nelle note di rilascio 7.0.2.
La versione 7.1.0 di Azure Key Vault Provider implementa i metodi asincroni del provider di key store e corregge la crescita della cache e i client di chiave duplicati in concorrenza. Questi metodi asincroni avvantaggiano le chiamate dirette al provider; i percorsi di esecuzione dei comandi del driver utilizzano ancora operazioni sulle chiavi sincrone. L'estensione Azure e le astrazioni delle estensioni allineano le versioni senza modifiche pubbliche alle API.
Per la cronologia delle anteprime, consulta le note di rilascio per preview1, preview2 e preview3.
7.0 STS
La versione 7.0 ha raggiunto la disponibilità generale a marzo 2026. Rimane supportato fino al 17 dicembre 2026, tre mesi dopo il rilascio della versione 7.1.
Caratteristiche e cambiamenti
- L'autenticazione Microsoft Entra fornita dal driver è passata dal pacchetto core a
Microsoft.Data.SqlClient.Extensions.Azure. Aggiungi il pacchetto di estensioni quando usi la modalità di autenticazioneActive Directory. - Il pacchetto core non dipende più da
Azure.Core,Azure.Identity, o da Libreria di Autenticazione Microsoft (MSAL). -
SqlConnection.SspiContextProvidersupporta la negoziazione personalizzata di token Kerberos e NTLM. L'identità del provider fa parte della chiave del pool di connessione. - Il routing migliorato per Azure SQL Hyperscale e le repliche di lettura denominate viene negoziato automaticamente.
- Eventi diagnosticali di comandi, connessioni e transazioni fortemente tipati sono disponibili su .NET Framework e .NET moderno.
-
SqlConfigurableRetryFactory.BaselineTransientErrorsEspone la lista predefinita degli errori transitori del driver. -
Active Directory PasswordL'autenticazione è obsoleta. Utilizzare l'autenticazione interattiva per le applicazioni utente, l'autenticazione del service principal per i servizi o l'identità gestita per i carichi di lavoro ospitati su Azure. - Il supporto dei target inizia con .NET Framework 4.6.2 e .NET 8. Il driver supporta anche la compilazione e l'esecuzione su .NET 10.
Il multiplexing dei pacchetti per le letture asincrone rimane una funzionalità di anteprima ed è opt-in nella versione 7.0. Testa le opzioni di compatibilità con i carichi di lavoro di produzione e mantieni un percorso di rollback.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 7.0.0 | Marzo 2026 | Disponibilità generale |
| 7.0.1 | Aprile 2026 | Sono state corrette SqlBulkCopy le query di metadati per i pool SQL dedicati di SQL Server 2016 e Azure Synapse Analytics, corretti i metadati dei campi vettoriali, aggiunta la dipendenza mancante da .NET Framework System.Data.Common e aggiunto l'inoltro di tipo per astrazioni di autenticazione. |
| 7.0.2 | Giugno 2026 | Allineati il driver core e i pacchetti associati, reso più robusto il parsing dei token TDS, corretta la gestione della cache di verifica della firma di Always Encrypted e corretti gli errori nelle chiamate di annullamento e nelle chiamate null-buffer GetBytes e GetChars. |
| 7.0.3 | Settembre 2026 | Aggiornato SNI alla 6.0.3. Corretto l'accesso SqlBulkCopy ai metadati, tracciamento delle allocazioni, ServerCertificate validazione su SNI gestito, verifica della chiave di attestazione Always Encrypted dell'enclave, AccessTokenCallback impostazioni predefinite TNIR su .NET Framework, preservazione dello stato di autenticazione e risoluzione configurabile dell'assembly per i tentativi. Impostazioni di autenticazione SSPI e token in conflitto ora generano InvalidOperationException. L'estensione Azure allineata corregge l'analisi parsing dell'autorità Entra per le connessioni Dataverse e Dynamics 365. |
Importante
A partire dalla 7.0.2, allineare i riferimenti diretti a Microsoft.Data.SqlClient, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, e Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Risolvi Microsoft.Data.SqlClient.Internal.Logging in modo transitivo. Su .NET Framework, le versioni assembly di Extensions.Azure, Internal.Logging e 1.0.0.0 sono cambiate da 7.0.0.0 a Extensions.Abstractions. Ricostruisci l'applicazione o aggiungi binding redirect quando aggiorni questi pacchetti.
6.1 LTS
La versione 6.1.0 è stata rilasciata a luglio 2025, ma successivamente è stata rimossa dalla lista a causa di regressioni critiche. La versione 6.1.1, rilasciata nell'agosto 2025, ha definito la versione LTS 6.1 supportata.
Caratteristiche e cambiamenti
- Trasporto vettoriale nativo di SQL Server 2025 tramite
SqlVector<T>, inizialmente per vettori in virgola mobile a precisione singola. - Un asset di riferimento .NET Standard 2.0 per la compatibilità delle librerie. Questo asset non è un'implementazione di runtime. Le applicazioni eseguibili devono utilizzare un asset runtime supportato per .NET Framework o .NET.
- Lavoro sulla multiplexazione di pacchetti opt-in per letture asincrone di grandi dimensioni e sulla gestione degli endpoint per database SQL in Microsoft Fabric.
- Migliorato il supporto nativo per la compilazione Ahead-of-Time (AOT).
- Ridotte le allocazioni nei percorsi di connessione e di elaborazione TDS.
- Le basi interne per l'estensibilità della Security Support Provider Interface (SSPI) pubblica sono state aggiunte nella versione 7.0.
Non distribuire la versione 6.1.0. La versione 6.1.1 ha annullato le modifiche interessate al rilevamento dei pacchetti e al replay.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 6.1.0 | Luglio 2025 | Rilascio in disponibilità generale Questo pacchetto non è più elencato a causa di regressioni critiche. Non usarlo. |
| 6.1.1 | Agosto 2025 | Annullati i cambiamenti di rilevamento, correzione e replay parziale dei pacchetti introdotti nella versione 6.1.0. Assembly di riferimento vettoriali corretti e SqlVector<T>.Null. |
| 6.1.2 | Ottobre 2025 | Corretti l'inizializzazione precoce dei contatori di prestazioni, la sostituzione di provider di autenticazione personalizzati e la concorrenza nel pool che impediva l'uso della dimensione massima del pool configurata. |
| 6.1.3 | Novembre 2025 | Aggiunto IgnoreServerProvidedFailoverPartner per i Gruppi di Disponibilità Base e le porte personalizzate. Correzione dell'inizializzazione anticipata delle metriche EventSource. |
| 6.1.4 | Gennaio 2026 | Aggiunto EnableMultiSubnetFailoverByDefault. Corretti i fallimenti del batching SqlDataAdapter e i conteggi negativi di connessioni attive nelle metriche del pool. |
| 6.1.5 | Aprile 2026 | Rimosso il lavoro non necessario relativo a Service Principal Name (SPN) e Domain Name System (DNS) per l'autenticazione non integrata, reso possibile a ExecuteScalar propagare gli errori del server restituiti dopo i dati e corretti i tipi di metadati vettoriali. |
| 6.1.6 | Giugno 2026 | Aggiunta la compatibilità opt-in per il broker Windows Web Account Manager (WAM), resa più robusta l'analisi dei token TDS, corretti gli errori di firma delle chiavi master di colonna memorizzate nella cache e corretta GetChars convalida degli argomenti. |
| 6.1.7 | Settembre 2026 | Aggiornato SNI alla 6.0.3. Corretta la validazione ServerCertificate su SNI gestito, la verifica della chiave di attestazione dell'enclave Always Encrypted, le impostazioni predefinite TNIR AccessTokenCallback su .NET Framework, lo stato di autenticazione del token nelle chiavi del pool di connessione, la convalida del certificato pre-login basata su callback e la risoluzione configurabile dell'assembly dei tentativi. |
Release precedenti
Le seguenti linee di rilascio non sono più supportate. Usa i loro riepiloghi quando pianifichi un aggiornamento su più versioni di driver.
6.0
La versione 6.0 ha raggiunto la disponibilità generale a gennaio 2025. La patch finale è stata la 6.0.5, rilasciata a gennaio 2026.
- Aggiunto il supporto JSON nativo di SQL Server tramite
Microsoft.Data.SqlTypes.SqlJson, incluse operazioni di lettura, scrittura, streaming e copia bulk. - Aggiunti payload diagnostici pubblici e fortemente tipati per gli eventi di comando, connessione e transazione.
- Aggiunto
OpenAsync(SqlConnectionOverrides, CancellationToken), inclusoOpenWithoutRetry. - Aggiunto il supporto per
DateOnlyeTimeOnlynei parametri strutturatiDataTableeSqlDataRecord. - Aggiunta la compatibilità .NET 9.
- Eliminato .NET Standard e .NET 6 asset runtime. Le destinazioni supportate divennero .NET Framework 4.6.2 e versioni successive e .NET 8 e versioni successive.
- Limitato
EnableOptimizedParameterBindingai comandi di testo.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 6.0.0 | Gennaio 2025 | Rilascio di disponibilità generale. Questo pacchetto non è in elenco su NuGet e le note del progetto sorgente non documentano una ragione. |
| 6.0.1 | Gennaio 2025 | API di riferimento corrette SqlClientDiagnostic , avvisi TLS down-level e dipendenze. |
| 6.0.2 | Aprile 2025 | Corretti possibili errori null di ricezione socket, SqlJson API di riferimento, parametri di output JSON e dipendenze. |
| 6.0.3 | Ottobre 2025 | Impedita la sostituzione di fornitori di autenticazione personalizzata e corretta la concorrenza del pool che sottoutilizzava Max Pool Size. |
| 6.0.4 | Novembre 2025 | Aggiunto Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner per i Basic Availability Groups che utilizzano porte TCP personalizzate. |
| 6.0.5 | Gennaio 2026 | Corretta SqlDataAdapter la gestione dei valori null del batch RPC, aggiunto Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault, e aggiornate le dipendenze. |
5,2
La versione 5.2 ha raggiunto la disponibilità generale a febbraio 2024. La patch finale è stata la 5.2.3, rilasciata nell'aprile 2025.
- Aggiunto
SqlConnection.AccessTokenCallbackper l'acquisizione asincrona del token compatibile con il pool. - Aggiunto
SqlBatcheSqlBatchCommandin .NET 6 e versioni successive. - Aggiunto
SqlDiagnosticListeneril supporto per .NET Standard. - Aggiunto 64 bit
SqlBulkCopy.RowsCopied64. La proprietà precedenteRowsCopiedrimane un intero a 32 bit. - Autenticazione
Active Directory Workload Identityaggiunta. - Aggiunta la compatibilità per .NET 8 e piattaforme big-endian.
- Impostato
UseOneSecFloorInTimeoutCalculationDuringLoginsutrueper impostazione predefinita. - Usa
NegotiateAuthenticationper SSPI gestito su .NET 7 e versioni successive.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 5.2.0 | Febbraio 2024 | Rilascio in disponibilità generale |
| 5.2.1 | Maggio 2024 | Correzione delle connessioni Linux a istanze denominate con porte, FireInfoMessageEventOnUserErrors, parametri con valori di tabella datetimeoffset(n), ritardo di OpenAsync, e conservazione di AccessTokenCallback tramite SqlConnection.Clone(). |
| 5.2.2 | Agosto 2024 | Timeout dei token corretti, connessioni socket SNI gestite, assembly targeting, tentativi ripetuti SSPI, letture di tipi definiti dall'utente e dati dei lettori criptati. Pacchetti di identità aggiornati per CVE-2024-35255. |
| 5.2.3 | Aprile 2025 | Corretti possibili errori null in ricezione socket e incoerenze nell'assembly di riferimento, consentiti numeri di errore transitori negativi e aggiornate le dipendenze. |
5.1
La versione 5.1 è stata resa disponibile in disponibilità generale a gennaio 2023. L'ultima patch è stata la 5.1.9, rilasciata a gennaio 2026.
- Aggiunta la compatibilità per .NET 6 e eliminato .NET Core 3.1.
- Aggiunto il supporto per
DateOnlyeTimeOnlyper i valori dei parametri eGetFieldValue. - Aggiunto TLS 1.3 in .NET e nei percorsi del codice nativi di SQL Server Network Interface (SNI).
- Aggiunto
ServerCertificateper una corrispondenza esatta del certificato conEncrypt=MandatoryeEncrypt=Strict. - Aggiunto il supporto per Windows ARM64 per .NET Framework.
- Ho reso pubblico il
SqlConnectionEncryptOptionparser delle stringhe. - La versione 5.1.3 ha corretto il percorso di declassamento di crittografia CVE-2024-0056 e la validazione della catena dei certificati.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 5.1.0 | Gennaio 2023 | Rilascio per disponibilità generale |
| 5.1.1 | Marzo 2023 | Correzione della segnalazione degli errori di Always Encrypted, delle transazioni in modalità di reindirizzamento, del throttling dei token, dei fallimenti TDS RPC di query di grandi dimensioni e della gestione dei valori null GetBytesAsync. |
| 5.1.2 | Ottobre 2023 | Correzione delle istanze utente SQL Express, nuovi tentativi dell'enclave, LocalDB, valori di costruzione di stringhe di connessione, SqlConnectionEncryptOption conversione di configurazione e OpenAsync errori transitori. |
| 5.1.3 | Gennaio 2024 | Corretto CVE-2024-0056 e validazione della catena di certificati. |
| 5.1.4 | Gennaio 2024 | Corretto un deadlock tra transazioni distribuite .NET e aggiornato Azure.Identity per CVE-2023-36414. |
| 5.1.5 | Gennaio 2024 | Correzione della pulizia delle transazioni prima del pooling e degli errori di conversione di data e ora di Always Encrypted. Dipendenze aggiornate di IdentityModel per CVE-2024-21319. |
| 5.1.6 | Agosto 2024 | Risolti OpenAsync, timeout di autenticazione e guasti dei dati in sospeso del lettore crittografato. Aggiornate le dipendenze di identità per CVE-2024-35255 e sono state memorizzate nella cache le istanze TokenCredential. |
| 5.1.7 | Aprile 2025 | Corretto un possibile errore di valore nullo nella ricezione del socket, allineate le assembly di origine e di riferimento e aggiornate le dipendenze. |
| 5.1.8 | Novembre 2025 | Aggiunta Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, corretta la gestione del BOM (byte order mark) UTF-8 nella copia in blocco, modernizzata la creazione di MSAL e aggiornate le dipendenze. |
| 5.1.9 | Gennaio 2026 | Ho spostato il timing in SqlStatistics e aggiornato le dipendenze specifiche del framework Environment.TickCount. |
5,0
La versione 5.0 ha raggiunto la disponibilità generale nell'agosto 2022. L'ultima patch è stata la 5.0.2, rilasciata a marzo 2023.
- Aggiunto TDS 8.0 tramite
Encrypt=Strict. La modalità Strict avvia TLS prima dello scambio di login TDS e valida sempre il certificato server. - Modificato
SqlConnectionStringBuilder.EncryptdaboolaSqlConnectionEncryptOption. - Spostati i tipi di runtime del common language (CLR) di SQL Server nel pacchetto con versioni
Microsoft.SqlServer.Serverseparate. - Opzioni aggiunte
Server SPNeFailover Server SPNdi connessione. - Aggiunto il supporto agli alias di SQL Server per Windows nell'attuale .NET.
- Aggiunto
SqlDataSourceEnumeratorsu Windows. - Rimosso il supporto per .NET Framework 4.6.1.
Importante
Il cambiamento di tipo SqlConnectionStringBuilder.Encrypt costituisce una modifica incompatibile a livello binario. I tipi rimossi da Microsoft.Data.SqlClient.Server richiedono anche modifiche alla sorgente per poter usare Microsoft.SqlServer.Server. Ricompila applicazioni e librerie, aggiorna i namespace e verifica eventuali conflitti di namespace quando System.Data.SqlClient rimane referenziato.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 5.0.0 | Agosto 2022 | Rilascio di disponibilità generale. |
| 5.0.1 | Ottobre 2022 | Ripristinato HostNameInCertificate su .NET Framework e risolti blocchi di attenzione, SqlConnectionStringBuilder.Encrypt, registrazione dell'annullamento, blocchi SNI gestiti, collazione UTF-8 e crash SNI nel dominio applicativo. |
| 5.0.2 | Marzo 2023 | Corretta una perdita di memoria nelle letture asincrone, modalità di reindirizzamento TransactionScope, errori Always Encrypted, fallimenti RPC TDS di query di grandi dimensioni e deadlock tra transazioni distribuite. |
4.1
La versione 4.1 ha raggiunto la disponibilità generale a gennaio 2022. L'ultima patch è stata la 4.1.1, rilasciata a settembre 2022.
- Aggiunto
Attestation Protocol=Noneper enclave di Virtualizzazione basata sulla Sicurezza (VBS). - Parallelizzazione delle richieste del protocollo di risoluzione di SQL Server su Linux e macOS quando
MultiSubnetFailoverè abilitato. - Corretti i controlli della lista di revoca dei certificati durante l'autenticazione.
- Corretto l'autenticazione Microsoft Entra, i valori di null
SqlBinarye rowversion, e il comportamento di collazione UTF-8.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 4.1.0 | Gennaio 2022 | Disponibilità generale |
| 4.1.1 | Settembre 2022 | Risolti i problemi relativi all'elenco di revoca dei certificati, parallelizzate le richieste del SQL Server Resolution Protocol per MultiSubnetFailover, e corretti i problemi relativi all'autenticazione Microsoft Entra, a rowversion, a UTF-8 e al dominio applicazione SNI. |
4.0
La versione 4.0 ha raggiunto la disponibilità generale nel novembre 2021. La patch finale è stata la 4.0.6, rilasciata nell'agosto 2024.
- Cambiato il valore predefinito di
Encryptdafalseatrue. - Aggiunto
SqlCommand.EnableOptimizedParameterBindingper comandi con molti parametri. - Aggiunto
SqlFileStreamper Windows tramite l'implementazione dello standard .NET. - Aggiunta la compatibilità delle istanze LocalDB condivise in SNI gestito.
- Aggiunto
GetFieldValue<T>eGetFieldValueAsync<T>perXmlReader,TextReader, eStream. - Rimosso l'interruttore di sicurezza dalla logica di ritentazione configurabile. Retry è rimasto disabilitato finché un'applicazione non configurava un provider.
- Modificati gli errori di autenticazione di Microsoft Entra per generare
SqlExceptioninvece diAggregateException. - Rimosso il supporto per .NET Core 2.1.
- La versione 4.0.5 ha corretto il percorso di downgrade di crittografia CVE-2024-0056 e la validazione della catena dei certificati.
Importante
Poiché la crittografia è predefinita true nella versione 4.0 e successive, un aggiornamento può esporre incongruenze di attendibilità del certificato o del nome del server. Non disabilitare la crittografia per aggirare questi errori. Installa un certificato server affidabile o configura la validazione del certificato per il deployment.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 4.0.0 | Novembre 2021 | Versione di disponibilità generale. |
| 4.0.1 | Gennaio 2022 | Aggiunto SuppressInsecureTLSWarning e corretto il Kerberos .NET 6, nomi dei pipe LocalDB e query di enclave concorrenti. |
| 4.0.2 | Settembre 2022 | Corretti i fallimenti nella lista di revoca dei certificati, parallelizzate le richieste del SQL Server Resolution Protocol per MultiSubnetFailover, e corretti l'autenticazione Microsoft Entra, rowversion, UTF-8 e gli errori del dominio applicazione SNI. |
| 4.0.3 | Aprile 2023 | Riduzione del throttling dei token per account memorizzati nella cache e correzione degli errori TDS RPC delle query di grandi dimensioni. |
| 4.0.4 | Ottobre 2023 | Corretti i nuovi tentativi asincroni dell'enclave, il fallback di LocalDB e SNI gestiti, le versioni dei file e la correlazione tra l'attività di connessione. |
| 4.0.5 | Gennaio 2024 | Corretto CVE-2024-0056 e validazione della catena di certificati. |
| 4.0.6 | Agosto 2024 | Corretta la pulizia degli eventi di transazione prima del pooling e ActiveDirectoryAuthenticationProvider.AcquireTokenAsync gestione del timeout. |
3.1
La versione 3.1 ha raggiunto la disponibilità generale a marzo 2022. L'ultima patch è stata la 3.1.7, rilasciata nell'agosto 2024.
- Aggiunto
Attestation Protocol=Noneper gli enclave VBS. - Sono stati aggiunti gli errori SQL 42108 e 42109 all'elenco predefinito degli errori transitori.
- Aggiunta la compatibilità Windows ARM64 per .NET Framework nella versione 3.1.2.
- Ridotte le richieste ripetute di token Microsoft Entra tramite acquisizione silenziosa di token nella versione 3.1.3.
- Corretto il percorso di downgrade di crittografia CVE-2024-0056 nella 3.1.5.
- Pulizia delle transazioni corretta prima del pooling e gestione del timeout dei token Microsoft Entra nella versione 3.1.7.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 3.1.0 | Marzo 2022 | Disponibilità generale |
| 3.1.1 | Agosto 2022 | Valori null di SqlBinary corretti, fallimenti di Kerberos in .NET 6 e fallimenti di riferimento nullo nell'autenticazione Microsoft Entra. |
| 3.1.2 | Febbraio 2023 | Aggiunta del supporto .NET Framework per Windows ARM64 e correzione della sicurezza dei thread con lista di ritenti, blocchi di transazioni distribuite, collazione UTF-8 e validazione delle procedure memorizzate. |
| 3.1.3 | Marzo 2023 | Riduzione del throttling dei token Microsoft Entra e AcquireTokenSilent correzione dei fallimenti TDS RPC di query di grandi dimensioni. |
| 3.1.4 | Ottobre 2023 | Correzione dei nuovi tentativi asincroni dell'enclave, fallback LocalDB e SNI gestiti, versioni dei file, correlazione dell'attività di connessione e formattazione EventSource. |
| 3.1.5 | Gennaio 2024 | Corretto CVE-2024-0056 e validazione della catena di certificati. |
| 3.1.6 | Agosto 2024 | Questo pacchetto non era firmato correttamente ed era non in elenco. Non esiste alcun file di note di rilascio upstream. Usa invece la 3.1.7. |
| 3.1.7 | Agosto 2024 | Risolti i problemi di pulizia degli eventi di transazione prima del pooling, timeout di autenticazione, firma dell'assembly e arresto anomalo del dominio applicazione SNI. |
3.0
La versione 3.0 ha raggiunto la disponibilità generale a giugno 2021. L'ultima patch è stata la 3.0.1, rilasciata a settembre 2021.
- Aggiunta una logica di ritentazione configurabile per le operazioni di connessione e comando. Nella versione 3.0, è rimasto opt-in dietro
Switch.Microsoft.Data.SqlClient.EnableRetryLogic. - Aggiunti EventCounters per l'attività di connessione e del pool.
- Aggiunta
Active Directory Defaultl'autenticazione tramiteAzure.Identity. - Aggiunta la registrazione del provider di archiviazione chiave Always Encrypted con ambito connessione e comando.
- Aggiunta la preferenza per l'indirizzo IP TCP/IP.
- Modificato l'autenticazione dell'identità gestita assegnata dall'utente per usare l'ID client invece dell'ID oggetto in
User Id. - Ho cambiato i valori null SQL rowversion in modo che restituiscano
DBNullinvece di un array di byte vuoto. Uno switch AppContext ha mantenuto il comportamento meno recente. - Ho aumentato l'obiettivo minimo del framework .NET da 4.6 a 4.6.1.
I provider dell'archivio chiavi di sistema hanno la precedenza sui fornitori registrati su una connessione o comando a partire dalla versione 3.0. Rinomina un provider personalizzato se il suo nome è in conflitto con quello di un provider integrato.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 3.0.0 | Giugno 2021 | Disponibilità generale |
| 3.0.1 | Settembre 2021 | Risolti aperture bloccate delle connessioni Microsoft Entra, stato di promozione della transazione, crittografia obbligatoria, ricorsioni dei tentativi e deadlock, e connessioni inutilizzabili. |
2.1
La versione 2.1 è stata resa generalmente disponibile nel novembre 2020. L'ultima patch è stata la 2.1.7, rilasciata a gennaio 2024.
- Esteso Always Encrypted alle piattaforme .NET Standard 2.0 supportate.
- Aggiunta del supporto per enclave sicuro su Unix per .NET Core e su tutte le piattaforme che supportano .NET Standard 2.1.
- Aggiunta
Active Directory Device Code Flowe gestita l'autenticazione dell'identità gestita. - Aggiunti hook di personalizzazione per l'autenticazione interattiva e del codice del dispositivo.
- Metadati del livello di classificazione di sensibilità aggiunti.
- Aggiunto
SqlConnection.ServerProcessId. - Aggiunta l'opzione di connessione
Command Timeoutcome predefinita per i comandi creati da una connessione. - La versione 2.1.7 ha corretto il vettore di downgrade della crittografia CVE-2024-0056.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 2.1.0 | Novembre 2020 | Rilascio in disponibilità generale. |
| 2.1.1 | Dicembre 2020 | Correzione dell'identità gestita assegnata dal sistema in Funzioni di Azure, Unix Kerberos e TCP keep-alive. |
| 2.1.2 | Marzo 2021 | Risolte istanze denominate Unix, risultati errati del timeout, elaborazione DTD non sicura, SPN Kerberos, dipendenze di cache mancanti, tracciamento e header MARS. |
| 2.1.3 | Maggio 2021 | Ha prevenuto la corruzione dei dati delle transazioni con set di risultati aperti e corretto una race condition SinglePhaseCommit e TransactionEnded. |
| 2.1.4 | Settembre 2021 | Assicurato che le connessioni non riescano quando è richiesta la crittografia e corretto il problema per cui le connessioni entravano in uno stato inutilizzabile. |
| 2.1.5 | Agosto 2022 | Aggiunta la convalida della lunghezza delle stored procedure CommandText e corretta l'autenticazione Kerberos di .NET 6 e SqlTypeWorkarounds. |
| 2.1.6 | Aprile 2023 | Correzione di fallimenti TDS RPC di grande query in SqlCommand.ExecuteReaderAsync, conflitti di collazione predefiniti UTF-8 e deadlock nell'invio del segnale attention. |
| 2.1.7 | Gennaio 2024 | Corretti CVE-2024-0056 e la validazione della catena di certificati. |
2.0
La versione 2.0 ha raggiunto la disponibilità generale a giugno 2020. La patch finale è stata la 2.0.1, rilasciata nell'agosto 2020.
- È stata aggiunta l'autenticazione
Active Directory IntegratedeActive Directory Interactivesu .NET Core e .NET Standard. - Aggiunta autenticazione
Active Directory Service Principal. - Aggiunta
Microsoft.Data.SqlClient.EventSourcela tracciatura. - Aggiunti il supporto keep-alive TCP multipiattaforma e un'implementazione di rete gestita opt-in su Windows per test e debug. Il percorso gestito non supportava l'autenticazione di Windows non di dominio.
- Ho aggiunto
SqlBulkCopy.RowsCopiede ordinato i suggerimenti per la copia in blocco. - Aggiunto
SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry). - Aggiunto il supporto per Windows ARM tramite la
Microsoft.Data.SqlClient.SNI.runtimedipendenza. - Ha iniziato a validare il certificato server quando un server forza la cifratura, incluso quando la stringa di connessione imposta
Encrypt=false. Le connessioni possono fallire dopo questo aggiornamento se il certificato non è attendibile o il suo nome non corrisponde al server. - Ho cambiato la gestione della scala dei parametri decimali per usare un arrotondamento compatibile con SQL Server.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 2.0.0 | Giugno 2020 | Versione di disponibilità generale |
| 2.0.1 | Agosto 2020 | Aggiunta configurazione di autenticazione compatibile con la coesistenza e correzione della scadenza dei token pooled, gestione degli errori temporanei, cache dell'enclave e errori nativi di prelogin SNI. |
1.1
La versione 1.1 ha raggiunto la disponibilità generale nel novembre 2019. L'ultima patch è stata la 1.1.4, rilasciata a marzo 2021.
- Aggiunto Always Encrypted con enclave sicure su target supportati per .NET Framework e .NET Core.
- Aggiunta
|DataDirectory|l'espansione inAttachDBFilenamesu .NET Core. - Letture asincrone migliorate con memorizzazione nella cache del buffer di destinazione multipacchetto.
- Riduzione del sovraccarico degli snapshot in
TdsParserStateObjecteSqlDataReader. - Corretti nelle patch successive gli errori nello stato di timeout e nelle intestazioni Multiple Active Result Sets (MARS).
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 1.1.0 | Novembre 2019 | Disponibilità generale |
| 1.1.1 | Febbraio 2020 | Annullati i cambiamenti asincroni SNIPacket che causavano blocchi e corretto l'intervallo di dipendenza SNI. |
| 1.1.2 | Aprile 2020 | Sono stati aggiunti nomi utente per l'autenticazione interattiva Active Directory ed è stata corretta la persistenza della password e le intestazioni TDS MARS. |
| 1.1.3 | maggio 2020 | Ha impedito che le transazioni abortite impiegassero connessioni aggregate e ha annullato la correzione regressiva dell'header MARS. |
| 1.1.4 | Marzo 2021 | Corretti i risultati errati dello stato di timeout e gli errori dell'intestazione MARS su .NET Framework 4.8 e versioni successive. |
1.0
Microsoft.Data.SqlClient 1.0 ha raggiunto la disponibilità generale nell'agosto 2019. L'ultima patch è stata la 1.0.19269.1, rilasciata a settembre 2019.
- Introdotto il provider spedito separatamente
Microsoft.Data.SqlClient. - Supporta .NET Framework 4.6 e versioni successive, .NET Core 2.1 e versioni successive e .NET Standard 2.0.
- Aggiunta l'autenticazione
Active Directory Interactivesu .NET Framework. - Aggiunta l'autenticazione
Active Directory Passwordin .NET Core. - Aggiunta di metadati di classificazione della sensibilità dei dati su
SqlDataReader. - Aggiunto il supporto per la collation SQL Server 2019 UTF-8.
- Aggiunto il supporto per Always Encrypted su .NET Core.
Rilasci
| Versione | Rilasciato | Cambiamenti rilevanti per il cliente |
|---|---|---|
| 1.0.19239.1 | Agosto 2019 | Rilascio in disponibilità generale Corretto il riutilizzo della connessione dopo errori delle transazioni, la pubblicazione SNI, la gestione con globalizzazione invariata e l’estensione dei valori null in bulk copy. |
| 1.0.19249.1 | Settembre 2019 | Correzione delle letture di dati multipacchetto grandi su Unix. |
| 1.0.19269.1 | Settembre 2019 | Ripristinato SqlCommand.StatementCompleted, aggiunto il mancante SqlConnectionStringBuilder.Authentication e annullata una modifica incompatibile dell'API SqlAuthenticationParameters.Resource. |
Per un'applicazione che passa dal provider più vecchio, usa Migrate from System.Data.SqlClient to Microsoft.Data.SqlClient invece di leggere solo le note di rilascio.
Note di rilascio del pacchetto opzionale
I pacchetti opzionali hanno le proprie note di rilascio. A partire dalla versione 7.0.2, sono distribuiti con versioni allineate al driver core.
| Package | Note di rilascio |
|---|---|
Microsoft.Data.SqlClient.Extensions.Azure |
Note di rilascio dell'estensione Azure |
Microsoft.Data.SqlClient.Extensions.Abstractions |
Note di rilascio delle astrazioni delle estensioni |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Note di rilascio di Azure Key Vault Provider |
Non fare riferimento diretto a Microsoft.Data.SqlClient.Internal.Logging. È una dipendenza interna condivisa dai pacchetti driver.
Valutare un aggiornamento
- Identifica ogni driver e ogni versione di pacchetto opzionale usati direttamente o transitivamente.
- Leggi le note di rilascio di ogni versione secondaria e principale attraversata dall'aggiornamento.
- Controlla il ciclo di vita del supporto driver SqlClient per la compatibilità del framework target e del database.
- Aggiorna tutti i pacchetti correlati a versioni compatibili.
- Compila e testa l'autenticazione, la crittografia, il pooling di connessioni, i parametri, le transazioni, i ritentativi, la diagnostica e l'output della distribuzione dell'applicazione.
Per i comandi di installazione e distribuzione, vedi Installare, aggiornare e distribuire Microsoft.Data.SqlClient.