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.
Berlaku untuk: SQL Server 2022 (16.x) dan versi yang
lebih baru database Azure SQL Database
Azure SQL Managed Instance
SQL di Microsoft Fabric
SQL Server 2022 (16.x), Azure SQL Database, dan Azure SQL Managed Instance mendukung Tabular Data Stream (TDS) 8.0.
Protokol Aliran Data Tabular (TDS) adalah protokol lapisan aplikasi yang digunakan oleh klien untuk terhubung ke SQL Server. SQL Server menggunakan Keamanan Lapisan Transportasi (TLS) untuk mengenkripsi data yang dikirimkan di seluruh jaringan antara instans SQL Server dan aplikasi klien.
TDS adalah protokol aman, tetapi dalam versi SQL Server sebelumnya, enkripsi dapat dimatikan atau tidak diaktifkan. Untuk memenuhi standar enkripsi wajib saat menggunakan SQL Server, iterasi protokol TDS diperkenalkan: TDS 8.0.
Jabat tangan TLS sekarang mendahului pesan TDS apa pun, membungkus sesi TDS di TLS untuk memberlakukan enkripsi, menyelaraskan TDS 8.0 dengan HTTPS dan protokol web lainnya. Peningkatan ini secara signifikan berkontribusi pada pengelolaan lalu lintas TDS, karena appliance jaringan standar sekarang dapat memfilter dan melewati kueri SQL dengan aman.
Manfaat untuk TDS 8.0 dibandingkan dengan versi TDS sebelumnya adalah kompatibilitasnya dengan TLS 1.3, dan standar TLS yang akan datang. TDS 8.0 juga sepenuhnya kompatibel dengan TLS 1.2 dan versi TLS sebelumnya.
Cara kerja TDS
Protokol Aliran Data Tabular (TDS) adalah protokol tingkat aplikasi yang digunakan untuk transfer permintaan dan respons antara klien dan sistem server database. Sistem klien biasanya membuat koneksi berumur panjang dengan server. Setelah koneksi dibuat menggunakan protokol tingkat transportasi, pesan TDS ditukar untuk berkomunikasi antara klien dan SQL Server.
Selama masa pakai sesi TDS, ada tiga fase:
- Inisialisasi
- Autentikasi
- Pertukaran data
Enkripsi dinegosiasikan selama fase awal, tetapi negosiasi TDS terjadi melalui koneksi yang tidak terenkripsi. Koneksi SQL Server terlihat seperti ini untuk versi sebelumnya ke TDS 8.0:
TCP jabat ➡️ tangan TDS prelogin (cleartext) dan respons (cleartext) ➡️ pertukaran data autentikasi jabat tangan ➡️ TLS (terenkripsi) ➡️ (dapat dienkripsi atau tidak terenkripsi)
Dengan pengenalan TDS 8.0, koneksi SQL Server adalah sebagai berikut:
TCP jabat tangan ➡️ ➡️ TLS pralogin TDS (terenkripsi) dan pertukaran data autentikasi respons (terenkripsi) ➡️ (terenkripsi) ➡️
Matriks kompatibilitas untuk opsi TDS, TLS, OS, dan enkripsi
Anda dapat mengaktifkan versi TLS 1.2 dan TLS 1.3 di tingkat OS, yang memungkinkan koneksi klien ke SQL Server menggunakan beberapa versi protokol TDS (TDS 7.x dan 8.0). Bergantung pada versi OS, TLS 1.2 dan TLS 1.3 mungkin diaktifkan secara default.
Hanya TDS 7.x yang mendukung komunikasi non-terenkripsi (opsional), TDS 8.0 tidak mendukung ini. TDS 7.x mendukung enkripsi menggunakan TLS hingga versi 1.2. TDS 8.0 memerlukan enkripsi - semuanya selalu dienkripsi dengan TDS 8.0 (Encrypt=Strict). TDS 8.0 tidak memiliki persyaratan versi TLS minimum dan mendukung TLS 1.3. Dukungan TLS 1.3 tergantung pada versi sistem operasi. Tabel berikut ini meringkas berbagai skenario dengan opsi enkripsi dan versi TLS dan TDS yang sesuai.
| Mengenkripsi opsi |
Versi TLS diaktifkan | Versi OS | Diharapkan connection hasil |
Catatan |
|---|---|---|---|---|
| Ketat | Hanya TLS 1.3 (atau yang lebih baru) | Windows 11 Windows Server 2022 dan yang lebih baru |
Keberhasilan | TLS 1.3 dinegosiasikan; TDS 8.0 dipicu (Encrypt=Strict) |
| Ketat | TLS 1.2 dan TLS 1.3 | Windows 11 Windows Server 2022 dan yang lebih baru |
Keberhasilan | TLS 1.3 dinegosiasikan; TDS 8.0 dipicu (Encrypt=Strict) |
| Ketat | Hanya TLS 1.2 (atau yang lebih lama) | Windows 11 Windows Server 2022 dan yang lebih baru |
Keberhasilan | TLS 1.2 dinegosiasikan; TDS 8.0 dipicu (Enkripsi=Ketat) |
| Ketat | Hanya TLS 1.2 (atau yang lebih lama) | Windows 10 Windows Server 2019 / 2016 |
Keberhasilan | TLS 1.2 dinegosiasikan; TDS 8.0 dipicu (TLS 1.3 tidak tersedia) |
| Mandatory | Hanya TLS 1.3 (atau yang lebih baru) | Windows 11 Windows Server 2022 dan yang lebih baru |
Failure | Encrypt=Mandatory tidak kompatibel dengan TLS 1.3 untuk TDS 8.0 |
| Mandatory | TLS 1.2 dan TLS 1.3 | Windows 11 Windows Server 2022 dan yang lebih baru |
Keberhasilan | TLS 1.2 dinegosiasikan; TDS 8.0 tidak dipicu (Encrypt=Mandatory) |
| Mandatory | Hanya TLS 1.2 (atau yang lebih lama) | Windows 11 Windows Server 2022 dan yang lebih baru |
Keberhasilan | TLS 1.2 dinegosiasikan; TDS 8.0 tidak dipicu (Encrypt=Mandatory) |
| Mandatory | Hanya TLS 1.2 (atau yang lebih lama) | Windows 10 Windows Server 2019 / 2016 |
Keberhasilan | TLS 1.2 dinegosiasikan; TDS 8.0 tidak didukung pada OS ini (menggunakan TDS 7.x) |
| Fakultatif | Hanya TLS 1.3 (atau yang lebih baru) | Windows 11 Windows Server 2022 dan yang lebih baru |
Failure | Encrypt=Opsional (false) adalah TDS 7.x, yang tidak kompatibel dengan TLS 1.3. |
| Fakultatif | TLS 1.2 dan TLS 1.3 | Windows 11 Windows Server 2022 dan yang lebih baru |
Keberhasilan | TLS 1.3 dinegosiasikan; TDS 8.0 tidak dipicu (Enkripsi=Opsional) |
| Fakultatif | Hanya TLS 1.2 (atau yang lebih lama) | Windows 11 Windows Server 2022 dan yang lebih baru |
Keberhasilan | TLS 1.2 dinegosiasikan; TDS 8.0 tidak dipicu (Enkripsi=Opsional) |
| Fakultatif | Hanya TLS 1.2 (atau yang lebih lama) | Windows 10 Windows Server 2019 / 2016 |
Keberhasilan | TLS 1.2 dirundingkan; enkripsi bersifat opsional; koneksi dapat berlanjut berhasil tanpa enkripsi |
| Apa saja | Hanya TLS 1.3 (atau yang lebih baru) | Windows 10 Windows Server 2019 / 2016 |
Failure | TLS 1.3 tidak didukung pada OS ini |
Untuk informasi selengkapnya tentang cara klien menggunakan versi TDS yang berbeda, lihat bagian Penggunaan kata kunci di Bagian Perubahan pada properti enkripsi string koneksi .
Dukungan SQL Server 2025
SQL Server 2025 (17.x) memperkenalkan dukungan TDS 8.0 untuk alat baris perintah berikut dan fitur SQL Server:
- SQL Server Agent
- Utilitas sqlcmd
- utilitas bcp
- Penulis VSS SQL
- Layanan CEIP SQL
- Email Database
- Polybase
- Grup ketersediaan AlwaysOn
- Instans kluster failover Always On (FCI)
- Server tertaut1
- Replikasi transaksional1
- Gabungkan replikasi1
- Replikasi rekam jepret1
- Pengiriman log1
1Dukungan TDS 8.0 memperkenalkan perubahan mendasar pada fitur-fitur ini.
Enkripsi koneksi yang ketat
Untuk menggunakan TDS 8.0, SQL Server 2022 (16.x) ditambahkan strict sebagai opsi enkripsi koneksi tambahan ke driver SQL Server (Encrypt=strict). Untuk menggunakan strict jenis enkripsi koneksi, unduh versi terbaru driver .NET, ODBC, OLE DB, JDBC, PHP, dan Python:
- Microsoft ADO.NET untuk SQL Server dan Azure SQL Database versi 5.1 atau yang lebih tinggi
- Driver ODBC untuk SQL Server versi 18.1.2.1 atau yang lebih tinggi
- Driver Microsoft OLE DB untuk SQL Server versi 19.2.0 atau yang lebih tinggi
- Driver Microsoft JDBC untuk SQL Server versi 11.2.0 atau yang lebih tinggi
- Driver Microsoft untuk PHP untuk SQL Server versi 5.10 atau yang lebih tinggi
- Driver Python SQL - pyodbc
Untuk mencegah serangan man-in-the-middle dengan strict enkripsi koneksi, pengguna tidak dapat mengatur opsi TrustServerCertificate ke true dan mengizinkan sertifikat apa pun yang disediakan server. Sebagai gantinya HostNameInCertificate , pengguna akan menggunakan opsi untuk menentukan sertifikat ServerName yang harus dipercaya. Sertifikat yang disediakan oleh server harus melewati validasi sertifikat. Untuk informasi selengkapnya tentang validasi sertifikat, lihat Persyaratan sertifikat untuk SQL Server
Perubahan tambahan pada properti enkripsi string koneksi
Opsi berikut ditambahkan ke string koneksi untuk mengenkripsi komunikasi:
| Kata kunci | Bawaan | Deskripsi |
|---|---|---|
Encrypt |
salah |
Opsi string koneksi sebelumnya Opsi yang valid adalah - trueatau yes - false, atau no. Untuk informasi selengkapnya, lihat Sintaks String Koneksi. Ketika true, SQL Server menggunakan enkripsi TLS 1.2 untuk semua data yang dipertukarkan antara klien dan server jika server memiliki sertifikat yang diinstal.Opsi string koneksi terbaru Opsi yang valid adalah - strict - mandatory, atau true, atau yes - optional, atau false, atau no. Ketika diatur ke strict, SQL Server menggunakan TDS 8.0 untuk semua data yang dipertukarkan antara klien dan server.Saat diatur ke mandatory, , trueatau yes, SQL Server menggunakan TDS 7.x dengan enkripsi TLS/SSL untuk semua data yang dikirim antara klien dan server jika server memiliki sertifikat yang diinstal.Ketika diatur ke optional, false, atau no, koneksi menggunakan TDS 7.x dan akan dienkripsi hanya jika diperlukan oleh SQL Server. |
TrustServerCertificate |
salah |
Opsi string koneksi sebelumnya Ketika diatur ke true (tidak disarankan), driver tidak memvalidasi sertifikat TLS/SSL server. Jika true, sertifikat TLS/SSL server secara otomatis tepercaya (melewati validasi) saat lapisan komunikasi dienkripsi menggunakan TLS.Jika false, driver memvalidasi sertifikat TLS/SSL server. Jika validasi sertifikat server gagal, driver akan menimbulkan kesalahan dan menutup koneksi. Nilai defaultnya adalah false. Pastikan nilai yang diteruskan agar serverName sama persis dengan Common Name (CN) nama atau DNS dalam Subject Alternate Name sertifikat server agar koneksi TLS/SSL berhasil.Perubahan perilaku untuk Microsoft SQL Server ODBC Driver 18 dan yang lebih baru Jika Encrypt diatur ke strict, pengaturan ini menentukan lokasi sertifikat yang akan digunakan untuk validasi sertifikat server (sama persis). Driver mendukung ekstensi file PEM, DER, dan CER.Jika Encrypt diatur ke true atau false, dan TrustServerCertificate properti tidak ditentukan atau diatur ke null, , trueatau false, driver menggunakan ServerName nilai properti pada URL koneksi sebagai nama host untuk memvalidasi sertifikat SQL Server TLS/SSL. |
HostNameInCertificate |
null |
Nama host yang akan digunakan dalam memvalidasi sertifikat SQL Server TLS/SSL.
HostNameInCertificate Jika properti tidak ditentukan atau diatur ke null, driver menggunakan ServerName nilai properti sebagai nama host untuk memvalidasi sertifikat SQL Server TLS/SSL. |