Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Microsoft.Data.SqlClient didistribusikan secara terpisah dari .NET. Artikel ini merangkum fitur signifikan, perubahan perilaku, dan perubahan kompatibilitas di setiap lini rilis. Tabel rilis mencakup setiap publikasi paket stabil, termasuk setiap hotfix dan paket yang tidak terdaftar. Untuk setiap perbaikan dan pembaruan ketergantungan, lihat catatan rilis lengkap di repositori SqlClient.
Rilis saat ini
| Lini rilis | Versi terbaru | Tanggal rilis | Support |
|---|---|---|---|
| 7.1 | 7.1.0 | September 2026 | Dukungan Jangka Waktu Standar (STS) |
| 7.0 | 7.0.3 | September 2026 | Dukungan Jangka Waktu Standar (STS) |
| 6.1 | 6.1.7 | September 2026 | Dukungan Jangka Panjang (LTS) |
Jangan gunakan rilis pratinjau saat produksi. API Pratinjau dan perilakunya dapat berubah sebelum Ketersediaan Umum (GA).
Tabel rilis dan ringkasan ketersediaan umum menggunakan bulan publikasi NuGet. Artikel siklus hidup mencantumkan tanggal rilis resmi, yang bisa berbeda-beda. Untuk jendela dukungan, lihat siklus hidup dukungan driver SqlClient.
7.1 STS
Versi 7.1 tersedia secara umum pada September 2026. Ini adalah lini STS saat ini.
Fitur dan perubahan
-
SqlBatchdukungan pada .NET Framework. - Kelebihan beban asinkron.
SqlConnection.GetSchemaAsync - Pelaporan identitas aplikasi melalui
SqlConnection.RegisteredApplicationdan versi 2 dari payload TDS USERAGENT. Atur properti sebelum membuka koneksi. Nilai tersebut bukan bagian dari kunci connection pool, sehingga koneksi fisik yang digunakan ulang melaporkan aplikasi yang awalnya membuatnya. Identitas aplikasi adalah telemetri yang disediakan klien, bukan dasar untuk otorisasi atau keputusan keamanan lainnya. - Alias string koneksi seperti
ColumnEncryption, , ,FailoverPartnerPacketSize, danWorkstationIdConnectTimeout. - Pemetaan pseudo-kolom SQL Graph untuk
$node_id,$edge_id,$from_id, dan$to_iddiSqlBulkCopy. - Tipe SQL Server
jsondalamDataTypeskoleksi yang dikembalikan olehSqlConnection.GetSchema, termasuk pada Azure SQL. - Penegakan opt-in
Connection Idle TimeoutmelaluiSwitch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior=false. Batas waktu idle default adalah 300 detik;0menonaktifkan kedaluwarsa waktu idle. Perilaku pooling default tidak berubah. - Mode batas waktu koneksi opt-in yang mencakup waktu yang dihabiskan saat menunggu koneksi pooled melalui
Switch.Microsoft.Data.SqlClient.UseOverallConnectTimeoutForPoolWait=true. Saklar secara bawaan disetel kefalse. - Dukungan transaksi yang diperluas, pemulihan koneksi putus, pemanasan pool, pemangkasan idle, pemulihan koneksi bocor, dan diagnostik di connection pool V2. Kolam tetap dalam evaluasi dan membutuhkan
Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2. - Metode asinkron pada penyedia penyimpanan kunci Always Encrypted. Driver belum memanggil metode ini selama eksekusi perintah, sehingga mereka tidak membuat operasi Always Encrypted yang ada menjadi asinkron.
- Paket SNI native diperbarui ke 7.1.0. Target aplikasi yang didukung tetap .NET Framework 4.6.2 dan versi berikutnya serta .NET 8 dan versi setelahnya.
Perubahan kompatibilitas
-
SqlConnectionStringBuilder.TransparentNetworkIPResolutionsudah usang di .NET Framework. GunakanMultiSubnetFailoversebagai gantinya. Perubahan ini menambahkan peringatan waktu kompilasi; tidak mengubah perilaku runtime atau default kedua opsi tersebut. -
SqlBatchCommand.CommandBehaviordanCommandBehavioryang diteruskan keSqlBatch.ExecuteReaderdipatuhi. Versi sebelumnya mengabaikan pengaturan ini. - Opsi koneksi usang
Type System Version=SQL Server 2000sekarang menghasilkanArgumentExceptionsaat Anda membuka koneksi. Gunakan nilai yang didukung sepertiLatest.
Versi 7.1 juga mencakup sertifikat dan perbaikan validasi enclave yang disertakan sebelumnya dalam 6.1.7 dan 7.0.3. Saat Anda mengaktifkan validasi sertifikat pada SNI yang dikelola, ServerCertificate membandingkan file sertifikat yang dikonfigurasi dengan sertifikat yang disajikan oleh server. File yang tidak valid atau tidak dapat dibaca menyebabkan koneksi gagal alih-alih melewati pemeriksaan sertifikat yang dikonfigurasi. Virtual Secure Mode (VSM) dan Host Guardian Service (HGS) enclave attestation memverifikasi bahwa kunci publik enclave terikat pada laporan attestation yang ditandatangani. Uji ulang jalur-jalur ini saat Anda upgrade dari rilis sebelumnya yang belum memiliki perbaikan ini.
Perbaikan utama
- Memperbaiki koneksi pooled yang tetap rusak setelah
TransactionScoperollback, yang bisa menyebabkan panggilanBeginTransaction()berikutnya gagal. - Memperbaiki nama server literal IPv6 di atas Named Pipes dalam SNI yang dikelola.
- Memperbaiki limpahan parameter besar
decimaldengan presisi dan skala eksplisit, parameterDateOnlydan parameter bernilai tabel menggunakansql_variant, dan data kolom yang di-stream dilewati setelahIsDBNull(). - Memperbaiki penghitung pool koneksi, aktivitas timer pemeliharaan pool yang tidak perlu, dan regresi throughput buka/tutup connection pool V2.
- Memperbaiki logika retry yang dapat dikonfigurasi, yang mendaftarkan handler resolusi assembly permanen untuk seluruh proses di .NET modern. Assembly retry kustom harus berada di direktori basis aplikasi; dependensi yang dimuat setelah konstruksi penyedia harus diresolusikan melalui resolusi dependensi aplikasi normal atau handler yang disediakan aplikasi.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 7.1.0 | September 2026 | Rilis ketersediaan umum, termasuk perubahan kumulatif dari siklus pratinjau 7.1. |
Important
Upgrade paket pendamping yang langsung dirujuk ke 7.1.0 bersama dengan driver inti, termasuk Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, dan Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Biarkan Microsoft.Data.SqlClient.Internal.Logging diresolusikan secara transitif. Aligned assemblies mempertahankan AssemblyVersion 7.0.0.0, sehingga memperbarui dari 7.0.2 atau 7.0.3 tidak memerlukan pengalihan binding .NET Framework baru. Saat Anda memperbarui dari 7.0.0 atau 7.0.1, tinjau perubahan versi assembly satu kali yang dijelaskan dalam catatan rilis 7.0.2.
Rilis Azure Key Vault Provider 7.1.0 mengimplementasikan metode penyedia penyimpanan kunci asinkron dan memperbaiki pertumbuhan cache serta klien kunci duplikat di bawah konkurensi. Metode asinkron ini bermanfaat untuk pemanggilan langsung ke penyedia; jalur eksekusi perintah driver masih menggunakan operasi key sinkron. Rilis ekstensi Azure dan abstraksi ekstensi menyelaraskan versi tanpa perubahan API publik.
Untuk riwayat pratinjau, lihat catatan rilis untuk preview1, preview2, dan preview3.
7.0 STS
Versi 7.0 tersedia secara umum pada Maret 2026. Tetap didukung hingga 17 Desember 2026, tiga bulan setelah rilis 7.1.
Fitur dan perubahan
- Autentikasi Microsoft Entra yang disediakan driver dipindahkan dari paket inti ke
Microsoft.Data.SqlClient.Extensions.Azure. Tambahkan paket ekstensi saat Anda menggunakanDirektori Aktifmode autentikasi. - Paket inti tidak lagi bergantung pada
Azure.Core,Azure.Identity, atau Pustaka Autentikasi Microsoft (MSAL). -
SqlConnection.SspiContextProvidermendukung negosiasi token Kerberos dan NTLM kustom. Identitas penyedia adalah bagian dari kunci kumpulan koneksi. - Perutean yang disempurnakan untuk Azure SQL Hyperscale dan replika baca bernama dinegosiasikan secara otomatis.
- Event diagnostik perintah, koneksi, dan transaksi yang diketik kuat tersedia di .NET Framework dan .NET saat ini.
-
SqlConfigurableRetryFactory.BaselineTransientErrorsMenampilkan daftar kesalahan transien default pada driver. -
Direktori Aktif PasswordOtentikasi sudah usang. Gunakan autentikasi interaktif untuk aplikasi pengguna, autentikasi prinsipal layanan untuk layanan, atau identitas terkelola untuk beban kerja yang dihosting Azure. - Dukungan target dimulai dari .NET Framework 4.6.2 dan .NET 8. Driver ini juga mendukung pembangunan dan menjalankan di .NET 10.
Multiplexing paket untuk pembacaan asinkron tetap merupakan fitur pratinjau dan bersifat opt-in pada versi 7.0. Uji pengaturan kompatibilitas pada beban kerja produksi dan siapkan jalur pemulihan.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 7.0.0 | Maret 2026 | Rilis ketersediaan umum. |
| 7.0.1 | April 2026 | Memperbaiki kueri metadata SqlBulkCopy untuk SQL Server 2016 dan kumpulan SQL khusus Azure Synapse Analytics, memperbaiki metadata field vektor, menambahkan dependensi .NET Framework System.Data.Common yang sebelumnya hilang, dan menambahkan penerusan tipe untuk abstraksi autentikasi. |
| 7.0.2 | Juni 2026 | Menyelaraskan driver inti dan paket pendamping, memperkuat penguraian token TDS, memperbaiki penanganan cache verifikasi tanda tangan Always Encrypted, dan memperbaiki kesalahan dalam panggilan pembatalan dan panggilan buffer null GetBytes dan GetChars. |
| 7.0.3 | September 2026 | SNI diperbarui ke 6.0.3. Memperbaiki akses metadata SqlBulkCopy, pelacakan alokasi, validasi ServerCertificate pada SNI terkelola, verifikasi kunci atestasi enclave Always Encrypted, default TNIR AccessTokenCallback pada .NET Framework, pelestarian status autentikasi, dan resolusi assembly retry yang dapat dikonfigurasi. Pengaturan SSPI dan otentikasi token yang bertentangan sekarang menampilkan InvalidOperationException. Ekstensi Azure yang diselaraskan memperbaiki parsing authority Entra untuk koneksi Dataverse dan Dynamics 365. |
Important
Mulai dari 7.0.2, selaraskan referensi langsung ke Microsoft.Data.SqlClient, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, dan Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider. Biarkan Microsoft.Data.SqlClient.Internal.Logging diresolusikan secara transitif. Pada .NET Framework, versi assembly untuk Extensions.Azure, Internal.Logging, dan 1.0.0.0 diubah dari 7.0.0.0 menjadi Extensions.Abstractions. Bangun ulang aplikasi atau tambahkan pengalihan binding saat Anda memperbarui paket-paket ini.
6.1 LTS
Versi 6.1.0 dirilis pada Juli 2025, namun kemudian dihapus daftar karena regresi kritis. Versi 6.1.1, yang dirilis pada Agustus 2025, menetapkan lini LTS 6.1 yang didukung.
Fitur dan perubahan
- Transpor vektor native SQL Server 2025 melalui
SqlVector<T>, awalnya untuk vektor titik-mengambang presisi tunggal. - Aset referensi .NET Standard 2.0 untuk kompatibilitas pustaka. Aset ini bukan implementasi runtime. Aplikasi eksekusi harus menggunakan aset runtime .NET atau .NET Framework yang didukung.
- Dukungan untuk multipleks paket opt-in bagi pembacaan asinkron skala besar dan penanganan endpoint untuk database SQL di Microsoft Fabric.
- Dukungan kompilasi Advance-of-Time (AOT) asli yang ditingkatkan.
- Mengurangi alokasi pada jalur koneksi dan pemrosesan TDS.
- Dasar internal untuk ekstensibilitas Public Security Support Provider Interface (SSPI) ditambahkan di versi 7.0.
Jangan deploy versi 6.1.0. Versi 6.1.1 mengembalikan perubahan pada deteksi paket dan pemutaran ulang yang terdampak.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 6.1.0 | Juli 2025 | Rilis ketersediaan umum. Paket ini tidak tercantum karena regresi kritis. Jangan gunakan itu. |
| 6.1.1 | Agustus 2025 | Perubahan deteksi paket parsial, penyesuaian, dan replay dari versi 6.1.0 telah dibatalkan. Memperbaiki rakitan referensi vektor dan SqlVector<T>.Null. |
| 6.1.2 | Oktober 2025 | Inisialisasi penghitung kinerja awal diperbaiki, penggantian penyedia otentikasi khusus, dan konkurensi pool yang mencegah penggunaan ukuran pool maksimum yang telah dikonfigurasi. |
| 6.1.3 | November 2025 | Ditambahkan IgnoreServerProvidedFailoverPartner untuk Grup Ketersediaan Dasar dan port kustom. Inisialisasi metrik EventSource awal telah diperbaiki. |
| 6.1.4 | Januari 2026 | Ditambahkan EnableMultiSubnetFailoverByDefault. Memperbaiki kegagalan batching SqlDataAdapter dan jumlah koneksi aktif yang negatif dalam metrik pool. |
| 6.1.5 | April 2026 | Menghapus pemrosesan Service Principal Name (SPN) dan Domain Name System (DNS) yang tidak diperlukan untuk autentikasi non-terintegrasi, membuat ExecuteScalar mempropagasikan kesalahan server yang dikembalikan setelah data, dan memperbaiki tipe metadata vektor. |
| 6.1.6 | Juni 2026 | Menambahkan dukungan broker Windows Web Account Manager (WAM) opsional, memperketat penguraian token TDS, memperbaiki kegagalan tanda tangan kunci master kolom yang di-cache, dan memperbaiki validasi argumen GetChars. |
| 6.1.7 | September 2026 | SNI diperbarui ke 6.0.3. Memperbaiki validasi ServerCertificate pada SNI yang dikelola, verifikasi kunci attestation enclave Always Encrypted, AccessTokenCallback default TNIR pada .NET Framework, status autentikasi token pada kunci connection pool, validasi sertifikat pralogin berbasis callback, dan resolusi assembly percobaan ulang yang dapat dikonfigurasi. |
Lini rilis sebelumnya
Baris rilis berikut tidak lagi didukung. Gunakan ringkasan mereka saat Anda merencanakan peningkatan di beberapa versi driver.
6.0
Versi 6.0 tersedia secara umum pada Januari 2025. Patch terakhir adalah 6.0.5, dirilis pada Januari 2026.
- Menambahkan dukungan JSON SQL Server asli melalui
Microsoft.Data.SqlTypes.SqlJson, termasuk jalur baca, tulis, streaming, dan salinan massal. - Menambahkan payload diagnostik publik bertipe ketat untuk peristiwa perintah, koneksi, dan transaksi.
- Ditambahkan
OpenAsync(SqlConnectionOverrides, CancellationToken), termasukOpenWithoutRetry. - Menambahkan dukungan
DateOnlydanTimeOnlypada parameter terstrukturDataTabledanSqlDataRecord. - Dukungan .NET 9 telah ditambahkan.
- Menghapus aset runtime .NET Standard dan .NET 6. Target yang didukung menjadi .NET Framework 4.6.2 dan versi berikutnya serta .NET 8 dan versi berikutnya.
- Dibatasi
EnableOptimizedParameterBindinghanya untuk perintah teks.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 6.0.0 | Januari 2025 | Rilis ketersediaan umum. Paket ini tidak terdaftar di NuGet, dan catatan upstream tidak mendokumentasikan alasan. |
| 6.0.1 | Januari 2025 | API referensi SqlClientDiagnostic , peringatan TLS tingkat bawah, dan dependensi yang telah diperbaiki. |
| 6.0.2 | April 2025 | Memperbaiki kemungkinan kegagalan null pada penerimaan soket, API referensi SqlJson, parameter output JSON, dan dependensi. |
| 6.0.3 | Oktober 2025 | Mencegah penggantian penyedia autentikasi khusus dan memperbaiki konkurensi pool yang kurang memanfaatkan Max Pool Size. |
| 6.0.4 | November 2025 | Ditambahkan Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner untuk Grup Ketersediaan Dasar yang menggunakan port TCP khusus. |
| 6.0.5 | Januari 2026 | Memperbaiki penanganan null pada batch RPC SqlDataAdapter, menambahkan Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault, dan memperbarui dependensi. |
5.2
Versi 5.2 mencapai ketersediaan umum pada Februari 2024. Patch terakhir adalah 5.2.3, dirilis pada April 2025.
- Ditambahkan
SqlConnection.AccessTokenCallbackuntuk akuisisi token asinkron dan kompatibel dengan pool. - Ditambahkan
SqlBatchdanSqlBatchCommanddi .NET 6 dan versi setelahnya. - Menambahkan dukungan
SqlDiagnosticListeneruntuk .NET Standard. - Ditambahkan 64-bit
SqlBulkCopy.RowsCopied64. Properti lamaRowsCopiedtetap merupakan bilangan bulat 32-bit. - Menambahkan autentikasi
Direktori Aktif Workload Identity. - Menambahkan dukungan .NET 8 dan platform big-endian.
- Diubah
UseOneSecFloorInTimeoutCalculationDuringLoginmenjadi default ketrue. - Digunakan
NegotiateAuthenticationuntuk SSPI yang dikelola pada .NET 7 dan versi yang lebih baru.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 5.2.0 | Februari 2024 | Rilis ketersediaan umum. |
| 5.2.1 | Mei 2024 | Memperbaiki koneksi instans bernama Linux dengan port, FireInfoMessageEventOnUserErrors, parameter bernilai tabel datetimeoffset(n), OpenAsync yang tertunda, dan preservasi AccessTokenCallback oleh SqlConnection.Clone(). |
| 5.2.2 | Agustus 2024 | Memperbaiki timeout token, koneksi soket SNI terkelola, penargetan assembly, percobaan ulang SSPI, pembacaan tipe yang ditentukan pengguna, dan data pembaca terenkripsi. Paket identitas yang diperbarui untuk CVE-2024-35255. |
| 5.2.3 | April 2025 | Memperbaiki kemungkinan kegagalan null penerimaan soket dan inkonsistensi rakitan referensi, mengizinkan angka kesalahan transien negatif, dan memperbarui ketergantungan. |
5.1
Versi 5.1 tersedia secara umum pada Januari 2023. Patch terakhir adalah 5.1.9, dirilis pada Januari 2026.
- Menambahkan dukungan .NET 6 dan menghapus .NET Core 3.1.
- Menambahkan dukungan
DateOnlydanTimeOnlyuntuk nilai parameter danGetFieldValue. - Menambahkan TLS 1.3 pada .NET dan jalur native SQL Server Network Interface (SNI).
- Ditambahkan
ServerCertificateuntuk pencocokan sertifikat yang tepat denganEncrypt=MandatorydanEncrypt=Strict. - Dukungan Windows ARM64 untuk .NET Framework telah ditambahkan.
- Menjadikan parser string
SqlConnectionEncryptOptionpublik. - Versi 5.1.3 memperbaiki jalur penurunan kualitas enkripsi CVE-2024-0056 dan validasi rantai sertifikat.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 5.1.0 | Januari 2023 | Rilis ketersediaan umum. |
| 5.1.1 | Maret 2023 | Memperbaiki pelaporan kesalahan Always Encrypted, transaksi mode pengalihan, pembatasan token, kegagalan RPC TDS pada kueri besar, dan penanganan null GetBytesAsync. |
| 5.1.2 | Oktober 2023 | Memperbaiki instans pengguna SQL Express, percobaan ulang enklave, LocalDB, nilai pembangun string koneksi, konversi konfigurasi SqlConnectionEncryptOption, dan kesalahan sementara OpenAsync. |
| 5.1.3 | Januari 2024 | CVE-2024-0056 dan validasi rantai sertifikat telah diperbaiki. |
| 5.1.4 | Januari 2024 | Memperbaiki kebuntuan transaksi terdistribusi .NET dan memutakhirkan Azure.Identity untuk mengatasi CVE-2023-36414. |
| 5.1.5 | Januari 2024 | Memperbaiki pembersihan transaksi sebelum pooling dan kegagalan konversi tanggal dan waktu yang selalu dienkripsi. Memperbarui dependensi IdentityModel untuk CVE-2024-21319. |
| 5.1.6 | Agustus 2024 | Memperbaiki OpenAsync, batas waktu autentikasi, dan kegagalan data tertunda pada pembaca terenkripsi. Dependensi identitas yang diperbarui untuk CVE-2024-35255 dan instans TokenCredential yang di-cache. |
| 5.1.7 | April 2025 | Memperbaiki kemungkinan kegagalan null soket-penerima, menyelaraskan rakitan sumber dan referensi, serta memperbarui ketergantungan. |
| 5.1.8 | November 2025 | Menambahkan Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner, memperbaiki penanganan byte order mark (BOM) UTF-8 dalam penyalinan massal, memodernkan pembuatan MSAL, dan memperbarui dependensi. |
| 5.1.9 | Januari 2026 | Memindahkan pengaturan waktu SqlStatistics ke Environment.TickCount dan memperbarui dependensi khusus kerangka kerja. |
5.0
Versi 5.0 tersedia secara umum pada Agustus 2022. Patch terakhir adalah 5.0.2, dirilis pada Maret 2023.
- Ditambahkan TDS 8.0 hingga
Encrypt=Strict. Mode Strict memulai TLS sebelum pertukaran login TDS dan selalu memvalidasi sertifikat server. - Diubah
SqlConnectionStringBuilder.EncryptdariboolmenjadiSqlConnectionEncryptOption. - Memindahkan tipe common language runtime (CLR) SQL Server ke paket versi
Microsoft.SqlServer.Serverterpisah. - Menambahkan opsi koneksi
Server SPNdanFailover Server SPN. - Menambahkan dukungan alias Windows SQL Server pada .NET saat ini.
- Ditambahkan
SqlDataSourceEnumeratordi Windows. - .NET Framework 4.6.1 telah dihapus.
Important
Perubahan tipe SqlConnectionStringBuilder.Encrypt merusak kompatibilitas biner. Tipe yang dihapus dari Microsoft.Data.SqlClient.Server juga memerlukan perubahan sumber untuk digunakan Microsoft.SqlServer.Server. Kompilasi ulang aplikasi dan pustaka, perbarui namespace, dan periksa konflik namespace saat System.Data.SqlClient masih direferensikan.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 5.0.0 | Agustus 2022 | Rilis ketersediaan umum. |
| 5.0.1 | Oktober 2022 | Memulihkan HostNameInCertificate pada .NET Framework dan memperbaiki deadlock perhatian, SqlConnectionStringBuilder.Encrypt, pendaftaran pembatalan, hang SNI terkelola, kolasi UTF-8, dan crash domain aplikasi pada SNI. |
| 5.0.2 | Maret 2023 | Memperbaiki kebocoran memori pada pembacaan asinkron, mode pengalihan TransactionScope, kesalahan Always Encrypted, kegagalan RPC TDS pada kueri berukuran besar, dan kebuntuan transaksi terdistribusi. |
4.1
Versi 4.1 tersedia secara umum pada Januari 2022. Patch terakhir adalah 4.1.1, dirilis pada September 2022.
- Ditambahkan
Attestation Protocol=Noneuntuk enklave Keamanan berbasis virtualisasi (VBS). - Permintaan Protokol Resolusi SQL Server yang Paralel di Linux dan macOS saat
MultiSubnetFailoverdiaktifkan. - Memperbaiki pemeriksaan daftar pencabutan sertifikat saat autentikasi.
- Memperbaiki autentikasi Microsoft Entra, nilai null
SqlBinarydan rowversion, serta perilaku kolasi UTF-8.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 4.1.0 | Januari 2022 | Rilis ketersediaan umum. |
| 4.1.1 | September 2022 | Memperbaiki kegagalan daftar pencabutan sertifikat, memparalelkan permintaan Protokol Resolusi SQL Server untuk MultiSubnetFailover, dan mengoreksi kegagalan pada autentikasi Microsoft Entra, rowversion, UTF-8, dan domain aplikasi SNI. |
4.0
Versi 4.0 mencapai ketersediaan umum pada November 2021. Patch terakhir adalah 4.0.6, dirilis pada Agustus 2024.
- Mengubah nilai
Encryptdefault dari darifalseketrue. - Ditambahkan
SqlCommand.EnableOptimizedParameterBindinguntuk perintah dengan banyak parameter. - Ditambahkan
SqlFileStreamuntuk Windows melalui implementasi .NET Standard. - Menambahkan dukungan instance LocalDB bersama di SNI yang dikelola.
- Ditambahkan
GetFieldValue<T>danGetFieldValueAsync<T>untukXmlReader,TextReader, danStream. - Menghapus saklar pengaman dari logika percobaan ulang yang dapat dikonfigurasi. Coba ulang tetap dinonaktifkan sampai sebuah aplikasi mengonfigurasi penyedia.
- Kegagalan autentikasi Microsoft Entra diubah agar memunculkan
SqlExceptionalih-alihAggregateException. - .NET Core 2.1 dihapus.
- Versi 4.0.5 memperbaiki jalur downgrade enkripsi CVE-2024-0056 dan validasi rantai sertifikat.
Important
Karena enkripsi default digunakan true pada versi 4.0 dan versi yang lebih baru, peningkatan dapat mengungkap ketidaksesuaian kepercayaan sertifikat atau nama server. Jangan nonaktifkan enkripsi untuk mengatasi kesalahan ini. Instal sertifikat server tepercaya atau konfigurasikan validasi sertifikat untuk penerapan.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 4.0.0 | November 2021 | Rilis ketersediaan umum. |
| 4.0.1 | Januari 2022 | Ditambahkan SuppressInsecureTLSWarning dan diperbaiki Kerberos di .NET 6, nama pipe LocalDB, serta kueri enclave yang berjalan bersamaan. |
| 4.0.2 | September 2022 | Memperbaiki kegagalan daftar pencabutan sertifikat, memparalelkan permintaan Protokol Resolusi SQL Server untuk MultiSubnetFailover, dan mengoreksi kegagalan pada autentikasi Microsoft Entra, rowversion, UTF-8, dan domain aplikasi SNI. |
| 4.0.3 | April 2023 | Mengurangi pembatasan token akun yang di-cache dan memperbaiki kegagalan RPC TDS pada kueri besar. |
| 4.0.4 | Oktober 2023 | Memperbaiki percobaan ulang enklave asinkron, fallback LocalDB dan SNI terkelola, versi file, dan korelasi aktivitas koneksi. |
| 4.0.5 | Januari 2024 | CVE-2024-0056 dan validasi rantai sertifikat telah diperbaiki. |
| 4.0.6 | Agustus 2024 | Memperbaiki pembersihan peristiwa transaksi sebelum pooling dan penanganan ActiveDirectoryAuthenticationProvider.AcquireTokenAsync waktu habis. |
3.1
Versi 3.1 tersedia secara umum pada Maret 2022. Patch terakhir adalah 3.1.7, dirilis pada Agustus 2024.
- Ditambahkan
Attestation Protocol=Noneuntuk enclave VBS. - Menambahkan kesalahan SQL 42108 dan 42109 ke daftar kesalahan transien default.
- Menambahkan dukungan Windows ARM64 untuk .NET Framework di 3.1.2.
- Mengurangi permintaan token Microsoft Entra yang berulang melalui perolehan token secara senyap di versi 3.1.3.
- Jalur penurunan enkripsi CVE-2024-0056 telah diperbaiki di versi 3.1.5.
- Memperbaiki pembersihan transaksi sebelum pooling dan penanganan timeout token Microsoft Entra di 3.1.7.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 3.1.0 | Maret 2022 | Rilis ketersediaan umum. |
| 3.1.1 | Agustus 2022 | Memperbaiki nilai SqlBinaryrowversion null, kegagalan Kerberos di .NET 6, dan kegagalan referensi null pada autentikasi Microsoft Entra. |
| 3.1.2 | Februari 2023 | Menambahkan dukungan .NET Framework Windows ARM64 dan memperbaiki keamanan thread pada daftar percobaan ulang, deadlock transaksi terdistribusi, kolasi UTF-8, dan validasi prosedur tersimpan. |
| 3.1.3 | Maret 2023 | Mengurangi pembatasan token Microsoft Entra dengan AcquireTokenSilent dan memperbaiki kegagalan RPC TDS pada kueri besar. |
| 3.1.4 | Oktober 2023 | Memperbaiki pengulangan enclave asinkron, LocalDB dan SNI fallback terkelola, versi file, korelasi aktivitas koneksi, dan format EventSource. |
| 3.1.5 | Januari 2024 | CVE-2024-0056 dan validasi rantai sertifikat telah diperbaiki. |
| 3.1.6 | Agustus 2024 | Paket ini tidak ditandatangani dengan benar dan tidak terdaftar. Tidak ada file catatan rilis upstream. Gunakan versi 3.1.7 sebagai gantinya. |
| 3.1.7 | Agustus 2024 | Memperbaiki pembersihan peristiwa transaksi sebelum penggabungan, waktu habis autentikasi, penandatanganan assembly, dan kerusakan domain aplikasi SNI. |
3.0
Versi 3.0 tersedia secara umum pada Juni 2021. Patch terakhir adalah 3.0.1, dirilis pada September 2021.
- Menambahkan logika retry yang dapat dikonfigurasi untuk operasi koneksi dan perintah. Pada versi 3.0, fitur ini tetap bersifat opsional di balik
Switch.Microsoft.Data.SqlClient.EnableRetryLogic. - Menambahkan EventCounters untuk aktivitas koneksi dan kumpulan.
- Menambahkan autentikasi
Direktori Aktif DefaultmelaluiAzure.Identity. - Menambahkan registrasi penyedia penyimpanan kunci Always Encrypted dengan cakupan koneksi dan cakupan perintah.
- Preferensi alamat IP TCP ditambahkan.
- Mengubah autentikasi identitas terkelola yang ditugaskan pengguna untuk menggunakan ID klien alih-alih ID objek di
User Id. - Mengubah nilai null SQL rowversion untuk mengembalikan
DBNullalih-alih array byte kosong. Pengaturan AppContext mempertahankan perilaku sebelumnya. - Target minimum .NET Framework dinaikkan dari 4.6 menjadi 4.6.1.
Penyedia penyimpanan kunci sistem didahulukan daripada penyedia yang terdaftar pada koneksi atau perintah mulai versi 3.0. Ganti nama penyedia kustom jika namanya bertentangan dengan penyedia bawaan.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 3.0.0 | Juni 2021 | Rilis ketersediaan umum. |
| 3.0.1 | September 2021 | Memperbaiki blokir pembukaan koneksi Microsoft Entra, status promosi transaksi, enkripsi yang diperlukan, rekursi ulang dan deadlock, serta koneksi yang tidak dapat digunakan. |
2.1
Versi 2.1 tersedia secara umum pada November 2020. Patch terakhir adalah 2.1.7, dirilis pada Januari 2024.
- Diperluas Selalu Terenkripsi ke platform .NET Standard 2.0 yang didukung.
- Menambahkan dukungan enklave aman pada Unix untuk .NET Core dan di berbagai platform .NET Standard 2.1.
- Menambahkan
Direktori Aktif Device Code Flowdan mengelola autentikasi identitas. - Menambahkan titik kustomisasi untuk autentikasi interaktif dan autentikasi kode perangkat.
- Menambahkan metadata peringkat klasifikasi sensitivitas.
- Ditambahkan
SqlConnection.ServerProcessId. - Menambahkan opsi koneksi
Command Timeoutsebagai opsi bawaan untuk perintah yang dibuat melalui koneksi. - Versi 2.1.7 memperbaiki jalur penurunan tingkat enkripsi pada CVE-2024-0056.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 2.1.0 | November 2020 | Rilis ketersediaan umum. |
| 2.1.1 | Desember 2020 | Identitas terkelola yang ditetapkan sistem telah diperbaiki di Azure Functions, Unix Kerberos, dan TCP keep-alive. |
| 2.1.2 | Maret 2021 | Memperbaiki instance bernama di Unix, hasil timeout yang keliru, pemrosesan DTD yang tidak aman, SPN Kerberos, dependensi cache yang hilang, pelacakan, dan header MARS. |
| 2.1.3 | Mei 2021 | Mencegah kerusakan data transaksi pada kumpulan hasil yang terbuka dan memperbaiki kondisi balapan antara SinglePhaseCommit dan TransactionEnded. |
| 2.1.4 | September 2021 | Memastikan koneksi gagal saat enkripsi diperlukan dan memperbaiki koneksi yang masuk ke kondisi tidak dapat digunakan. |
| 2.1.5 | Agustus 2022 | Menambahkan validasi panjang stored procedure CommandText dan memperbaiki autentikasi Kerberos .NET 6 serta SqlTypeWorkarounds. |
| 2.1.6 | April 2023 | Memperbaiki kegagalan RPC TDS pada kueri besar di SqlCommand.ExecuteReaderAsync, konflik kolasi UTF-8 bawaan, dan deadlock saat mengirim attention. |
| 2.1.7 | Januari 2024 | CVE-2024-0056 dan validasi rantai sertifikat telah diperbaiki. |
2.0
Versi 2.0 tersedia secara umum pada Juni 2020. Patch terakhir adalah 2.0.1, dirilis pada Agustus 2020.
- Menambahkan autentikasi
Direktori Aktif IntegrateddanDirektori Aktif Interactiveuntuk .NET Core dan .NET Standard. - Menambahkan autentikasi
Direktori Aktif Service Principal. - Menambahkan
Microsoft.Data.SqlClient.EventSourcepelacakan tambahan. - Menambahkan fitur TCP keep-alive lintas platform dan implementasi jaringan terkelola opsional di Windows untuk pengujian dan penelusuran kesalahan. Jalur terkelola tidak mendukung autentikasi Windows bukan domain.
- Menambahkan
SqlBulkCopy.RowsCopieddan memesan petunjuk salinan massal. - Ditambahkan
SqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry). - Dukungan untuk Windows ARM ditambahkan melalui dependensi
Microsoft.Data.SqlClient.SNI.runtime. - Mulai memvalidasi sertifikat server ketika server memaksa enkripsi, termasuk saat string koneksi mengatur
Encrypt=false. Koneksi dapat gagal setelah peningkatan ini jika sertifikat tidak dipercaya atau namanya tidak sesuai dengan server. - Mengubah penanganan skala parameter desimal untuk menggunakan pembulatan yang kompatibel dengan SQL Server.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 2.0.0 | 2020 Juni | Rilis ketersediaan umum. |
| 2.0.1 | Agustus 2020 | Menambahkan konfigurasi autentikasi yang mendukung koeksistensi serta memperbaiki kedaluwarsa token gabungan, penanganan gangguan sementara, penembolokan enclave, dan kesalahan pra-login SNI asli. |
1.1
Versi 1.1 mencapai ketersediaan umum pada November 2019. Patch terakhir adalah 1.1.4, dirilis pada Maret 2021.
- Ditambahkan Selalu Terenkripsi dengan enklave aman pada target .NET Framework dan .NET Core yang didukung.
- Menambahkan
|DataDirectory|ekspansi padaAttachDBFilename.NET Core. - Peningkatan pembacaan asinkron dengan cache buffer target multipaket.
- Pengurangan overhead snapshot di
TdsParserStateObjectdanSqlDataReader. - Memperbaiki kesalahan header timeout-state dan Multiple Active Result Sets (MARS) pada patch selanjutnya.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 1.1.0 | November 2019 | Rilis ketersediaan umum. |
| 1.1.1 | Februari 2020 | Membatalkan perubahan asinkron SNIPacket yang menyebabkan deadlock dan memperbaiki rentang dependensi SNI. |
| 1.1.2 | April 2020 | Menambahkan nama pengguna untuk autentikasi Direktori Aktif Interactive serta memperbaiki persistensi kata sandi dan header MARS TDS. |
| 1.1.3 | 2020 Mei | Mencegah transaksi yang dibatalkan untuk mengaktifkan koneksi pooled dan membatalkan perbaikan header MARS regresif. |
| 1.1.4 | Maret 2021 | Memperbaiki hasil yang salah terkait status timeout dan kesalahan header MARS pada .NET Framework 4.8 dan versi yang lebih baru. |
1.0
Microsoft. Data.SqlClient 1.0 mencapai ketersediaan umum pada Agustus 2019. Patch terakhir adalah 1.0.19269.1, dirilis pada September 2019.
- Memperkenalkan provider
Microsoft.Data.SqlClientyang didistribusikan secara terpisah. - Mendukung .NET Framework 4.6 dan versi yang lebih baru, .NET Core 2.1 dan versi yang lebih baru, serta .NET Standard 2.0.
- Menambahkan autentikasi
Direktori Aktif Interactivepada .NET Framework. - Menambahkan autentikasi
Direktori Aktif Passworddi .NET Core. - Menambahkan metadata klasifikasi sensitivitas data pada
SqlDataReader. - Dukungan kolasi UTF-8 SQL Server 2019 telah ditambahkan.
- Dukungan Always Encrypted ditambahkan pada .NET Core.
Rilis
| Versi | Diluncurkan | Perubahan yang relevan dengan pelanggan |
|---|---|---|
| 1.0.19239.1 | Agustus 2019 | Rilis ketersediaan umum. Memperbaiki penggunaan ulang koneksi setelah kegagalan transaksi, penerbitan SNI, penanganan mode globalization-invariant, dan perluasan nilai null pada penyalinan massal. |
| 1.0.19249.1 | September 2019 | Memperbaiki pembacaan data multipaket besar di Unix. |
| 1.0.19269.1 | September 2019 | Memulihkan SqlCommand.StatementCompleted, menambahkan SqlConnectionStringBuilder.Authentication yang hilang, dan mengembalikan perubahan API SqlAuthenticationParameters.Resource yang tidak kompatibel. |
Untuk aplikasi yang berpindah dari penyedia lama, gunakan Migrate from System.Data.SqlClient ke Microsoft. Data.SqlClient daripada hanya membaca catatan rilis.
Catatan rilis paket opsional
Paket opsional memiliki catatan rilis sendiri. Mulai dari versi 7.0.2, mereka mengirimkan versi yang selaras dengan driver inti.
| Package | Catatan rilis |
|---|---|
Microsoft.Data.SqlClient.Extensions.Azure |
Catatan rilis ekstensi Azure |
Microsoft.Data.SqlClient.Extensions.Abstractions |
Catatan rilis untuk abstraksi ekstensi |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Catatan rilis Azure Key Vault Provider |
Jangan merujuk Microsoft.Data.SqlClient.Internal.Logging secara langsung. Ini adalah ketergantungan internal yang dibagikan oleh paket driver.
Mengevaluasi pembaruan
- Identifikasi setiap driver dan versi paket opsional yang digunakan langsung atau transitif.
- Baca catatan rilis untuk setiap versi minor dan mayor yang dilewati oleh pembaruan.
- Periksa siklus hidup dukungan driver SqlClient untuk kompatibilitas kerangka kerja target dan basis data.
- Perbarui semua paket terkait ke versi yang kompatibel.
- Bangun dan uji autentikasi aplikasi, enkripsi, pooling koneksi, parameter, transaksi, percobaan ulang, diagnostik, dan output penerapan.
Untuk perintah penginstalan dan penyebaran, lihat Menginstal, memperbarui, dan menyebarkan Microsoft.Data.SqlClient.