Microsoft ODBC Sürücüsü for SQL Server'daki başlıca sürüm farklılıkları

Bu makale, Microsoft ODBC Driver 18 for SQL Server ile sürüm 17 arasındaki kesinti değişikliklerini anlatmaktadır.

Çoğu uygulama 17 sürümünden 18 sürümüne yükselten tek bir değişiklikten etkilenir: bağlantılar varsayılan olarak şifrelenmiştir. Uygulamanız yükseltme yaptıktan sonra bağlantı kurmayı durdurursa, önce Varsayılan şifreleme davranışını okuyun.

Değişikliklerin özeti

Area Sürüm 17 Sürüm 18 ve sonraki sürümler
Varsayılan ayar Encrypt no yes
Encrypt Kabul edilen değerler yes, no yes, no, Mandatory, Optional, Strict
Şifreleme modları Ara ya da açık Kapatıcı, açık ya da kesin
Sunucu sertifikası doğrulaması Şifreleme istemediğiniz sürece gerçekleşmiyor Varsayılan olarak gerçekleşir çünkü şifreleme varsayılan olarak açıktır
Bağlantı dizesi anahtar sözcükleri Temel set Temel küme ve yeni anahtar kelimeler

Şifreleme değişiklikleri

Varsayılan şifreleme davranışı

17. sürümde, bağlantılar şifrelenmez, ancak şifreleme istediğinizde veya sunucu bunu zorunlu kılmadıkça şifrelenmiştir. 18. sürüm ve sonraki sürümlerde bağlantılar varsayılan olarak şifrelenir.

Sürücü, bir bağlantıyı şifrelediğinde sunucu sertifikasını doğruladığı için, kendi kendine imzalanmış veya başka şekilde güvenilmeyen bir sertifikaya sahip bir sunucuya bağlanan bir uygulama, 17. sürümle başarıyla bağlanır ve 18. sürümde başarısız olur. Başarısızlık, kimlik doğrulama hatası değil, sertifika doğrulama hatasıdır.

Çözmenin üç yolu vardır, en güvenliden en az güvenliğe kadar sıralanmıştır:

  • İstemcinin güvendiği sunucuya bir sertifika yükleyin. Bu seçenek önerilen ve hem şifreleme hem de doğrulamayı koruyan tek seçenek bu.
  • Şifrelemeyi açık tutun ve sürücüye hangi ismin doğrulanacağını veya ayarlarla HostNameInCertificateServerCertificatesöyle.
  • Şifrelemeyi kapatarak 17. sürüm varsayılanını geri getirin, bağlantı dizesi'e ekleyinEncrypt=no.

Caution

Ayar TrustServerCertificate=yes bağlantıyı şifreli tutar ancak sertifika doğrulamasını devre dışı bırakır, bu da bağlantıyı ortadaki düşman saldırılarına açık bırakır. Güvenilir bir sertifikayı tercih edin.

Şifreleme değerleri

Sürüm 17 sadece yes ve no. Sürüm 18 ve sonraki sürümler bu değerleri kabul eder ve üç tane daha ekler:

Değer Eşdeğer Davranış
Mandatory yes Bağlantı şifrelenmiş.
Optional no Bağlantı sunucu gerektirmedikçe şifrelenmiyor.
Strict Hiçbiri Bağlantı TDS 8.0 şifreleme kullanır.

Strict 17 versiyonu karşılığı yoktur. TDS 8.0'ı seçen tek değer bu; şifreleme giriş değişimi sırasında değil, önce müzakere edilir.

Sürüm 17 şifreleme davranışını geri getir

Sürüm 17 varsayılan davranışını geri getirmek için açıkça şu ayarla Encrypt :

Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;

Değeri açıkça ayarlamak, 17 sürümde bile faydalıdır, çünkü bağlantı dizesi her iki versiyonda da aynı şekilde davranır.

Yeni bağlantı dizesi anahtar kelimeleri

Sürüm 18, 17 sürümünde tanımadığı aşağıdaki bağlantı dizesi anahtar kelimelerini ekler:

Anahtar kelime Purpose
ConcatNullYieldsNull Bir null değeri birleştirmenin null verip vermediğini kontrol eder.
GetDataExtensions Sürücünün hangi SQLGetData uzantıları etkinleştirdiğini kontrol eder.
HostNameInCertificate Sunucunun TLS sertifikasında doğrulanacak ana bilgisayar adını belirtir.
IpAddressPreference Sürücünün ilk denesi IP adres ailesini belirtir.
LongAsMax Uzun veri türlerini eşdeğerleriyle max eşler.
RetryExec Başarısız sorgular için yeniden deneme kurallarını yapılandırıyor.
ServerCertificate Sunucuyu doğrulamak için bir sertifika dosyasına giden yolu belirtir.

Farklı 18. sürümlerde bireysel anahtar kelimeler tanıtıldı. Her anahtar kelimeyi tanıtan sürüm ve tam anahtar kelime referansı için ODBC DSN ve bağlantı dizesi anahtar kelimelerine bakınız.