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.
Artikel ini menjelaskan perubahan terpecah antara Microsoft ODBC Driver 18 untuk SQL Server dan versi 17.
Sebagian besar aplikasi yang melakukan upgrade dari versi 17 ke versi 18 terpengaruh oleh satu perubahan: koneksi secara default dienkripsi. Jika aplikasi Anda berhenti terhubung setelah Anda melakukan upgrade, baca dulu Perilaku enkripsi default .
Ringkasan perubahan
| Area | Versi 17 | Versi 18 dan versi setelahnya |
|---|---|---|
Pengaturan default Encrypt |
no |
yes |
Encrypt nilai-nilai yang diterima |
yes, no |
yes, no, Mandatory, Optional, Strict |
| Mode enkripsi | Menyala atau menyala | Mati, aktif, atau ketat |
| Validasi sertifikat server | Tidak terjadi kecuali Anda meminta enkripsi | Terjadi secara default, karena enkripsi aktif secara default |
| Kata kunci string koneksi | Set dasar | Set dasar plus kata kunci baru |
Perubahan enkripsi
Perilaku enkripsi default
Di versi 17, koneksi tidak dienkripsi kecuali Anda meminta enkripsi atau server membutuhkannya. Pada versi 18 dan versi berikutnya, koneksi secara default dienkripsi.
Karena driver memvalidasi sertifikat server setiap kali mengenkripsi koneksi, aplikasi yang terhubung ke server dengan sertifikat self-signed atau tidak terpercaya berhasil terhubung dengan versi 17 dan gagal pada versi 18. Kegagalan ini adalah kesalahan validasi sertifikat, bukan kesalahan autentikasi.
Anda memiliki tiga cara untuk menyelesaikannya, yang tercantum dari yang paling aman hingga yang paling tidak aman:
- Instal sertifikat di server yang dipercaya oleh klien. Opsi ini adalah yang direkomendasikan, dan satu-satunya yang menyimpan enkripsi sekaligus validasi.
- Tetap aktifkan enkripsi dan beri tahu driver nama mana yang harus divalidasi, dengan mengatur
HostNameInCertificateatauServerCertificate. - Matikan enkripsi untuk mengembalikan default versi 17, dengan menambahkan
Encrypt=noke string koneksi.
Caution
Pengaturan TrustServerCertificate=yes menjaga koneksi tetap terenkripsi tetapi menonaktifkan validasi sertifikat, yang membuat koneksi terbuka terhadap serangan adversary-in-the-middle. Lebih memilih sertifikat terpercaya.
Enkripsi nilai
Versi 17 hanya yes menerima dan no. Versi 18 dan versi berikutnya menerima nilai-nilai tersebut dan menambahkan tiga lagi:
| Nilai | Setara dengan | Behavior |
|---|---|---|
Mandatory |
yes |
Koneksi terenkripsi. |
Optional |
no |
Koneksi tidak dienkripsi kecuali server membutuhkannya. |
Strict |
Tidak | Koneksi menggunakan enkripsi TDS 8.0. |
Strict tidak memiliki versi 17 yang setara. Ini satu-satunya nilai yang memilih TDS 8.0, di mana enkripsi dinegosiasikan sebelum pertukaran login, bukan selama proses tersebut.
Pulihkan perilaku enkripsi versi 17
Untuk mengembalikan perilaku default versi 17, atur Encrypt secara eksplisit:
Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;
Menetapkan nilai secara eksplisit bermanfaat bahkan pada versi 17, karena membuat string koneksi berperilaku sama pada kedua versi.
Kata kunci string koneksi baru
Versi 18 menambahkan kata kunci string koneksi berikut, yang tidak dikenali oleh versi 17:
| Keyword | Kegunaan |
|---|---|
ConcatNullYieldsNull |
Mengontrol apakah penggabungan nilai null menghasilkan null. |
GetDataExtensions |
Mengontrol ekstensi mana yang SQLGetData diaktifkan oleh driver. |
HostNameInCertificate |
Menentukan nama host yang akan divalidasi dalam sertifikat TLS server. |
IpAddressPreference |
Menentukan keluarga alamat IP yang dicoba pertama kali oleh driver. |
LongAsMax |
Memetakan tipe data panjang ke padanan mereka max . |
RetryExec |
Mengonfigurasi aturan percobaan ulang untuk kueri yang gagal. |
ServerCertificate |
Menentukan jalur ke file sertifikat untuk memvalidasi server. |
Kata kunci individual diperkenalkan dalam rilis versi 18 yang berbeda. Untuk rilis yang memperkenalkan setiap kata kunci, dan untuk referensi kata kunci lengkap, lihat ODBC DSN dan kata kunci string koneksi.