Aracılığıyla paylaş


TDS 8.0

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri Microsoft Fabric'teAzure SQL VeritabanıAzure SQL Yönetilen Örneği SQL veritabanı

SQL Server 2022 (16.x), Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği, Tablosal Veri Akışı (TDS) 8.0'ı destekler.

Tablosal Veri Akışı (TDS) protokolü, istemciler tarafından SQL Server'a bağlanmak için kullanılan bir uygulama katmanı protokolüdür. SQL Server, SQL Server örneği ile istemci uygulaması arasında bir ağ üzerinden iletilen verileri şifrelemek için Aktarım Katmanı Güvenliği'ni (TLS) kullanır.

TDS güvenli bir protokoldür, ancak SQL Server'ın önceki sürümlerinde şifreleme kapatılabilir veya etkinleştirilmemiş olabilir. SQL Server kullanırken zorunlu şifreleme standartlarını karşılamak için TDS protokolü yinelemesi kullanıma sunulmuştur: TDS 8.0.

TLS el sıkışması artık tüm TDS iletilerinden önce geliyor ve şifrelemeyi zorlamak için TDS oturumunu TLS'de kaydırıyor ve TDS 8.0'ı HTTPS ve diğer web protokolleriyle hizalar. Standart ağ gereçleri artık SQL sorgularını filtreleyip güvenli bir şekilde geçirebildiğinden bu geliştirme, TDS trafiği yönetilebilirliğine önemli ölçüde katkıda bulunur.

TDS 8.0'ın önceki TDS sürümlerine kıyasla bir avantajı, TLS 1.3 ve gelecek TLS standartlarıyla uyumluluğudur. TDS 8.0, TLS 1.2 ve önceki TLS sürümleriyle de tam olarak uyumludur.

TDS nasıl çalışır?

Tablo Verisi Akışı (TDS) protokolü, istemciler ve veritabanı sunucusu sistemleri arasında isteklerin ve yanıtların aktarımı için kullanılan uygulama düzeyinde bir protokoldür. İstemci sistemi genellikle sunucuyla uzun süreli bir bağlantı kurar. Aktarım düzeyi protokol kullanılarak bağlantı kurulduktan sonra, TDS iletileri istemci ile SQL Server arasında iletişim kurmak için değiştirilir.

TDS oturum ömrü boyunca üç aşama vardır:

  • Başlatma İşlemi
  • Kimlik doğrulama
  • Veri değişimi

İlk aşamada şifreleme üzerinde anlaşmaya varılır, ancak TDS anlaşması şifrelenmemiş bir bağlantı üzerinden gerçekleşir. SQL Server bağlantısı, TDS 8.0'ın önceki sürümleri için şöyle görünür:

TCP el sıkışması ➡️ TDS ön günlüğü (cleartext) ve yanıt (cleartext) ➡️ TLS el sıkışması ➡️ kimlik doğrulaması (şifrelenmiş) ➡️ veri değişimi (şifrelenebilir veya şifrelenmemiş olabilir)

TDS 8.0'ın kullanıma sunulmasıyla birlikte, SQL Server bağlantıları aşağıdaki gibidir:

TCP el sıkışma ➡️ TLS el sıkışma ➡️ TDS ön oturum açma (şifrelenmiş) ve yanıt (şifrelenmiş) kimlik doğrulaması (şifrelenmiş) ➡️ ➡️ veri değişimi (şifrelenmiş)

TDS, TLS, işletim sistemi ve şifreleme seçenekleri için uyumluluk matrisi

HEM TLS 1.2 hem de TLS 1.3 sürümlerini işletim sistemi düzeyinde etkinleştirebilirsiniz. Bu, SQL Server'a istemci bağlantılarının birden çok TDS protokol sürümünü (TDS 7.x ve 8.0) kullanmasına olanak tanır. İşletim sistemi sürümüne bağlı olarak TLS 1.2 ve TLS 1.3 varsayılan olarak etkinleştirilebilir.

Yalnızca TDS 7.x şifrelenmemiş (isteğe bağlı) iletişimi destekler, TDS 8.0 bunu desteklemez. TDS 7.x, 1.2 sürümüne kadar TLS kullanarak şifrelemeyi destekler. TDS 8.0 şifreleme gerektirir– her şey TDS 8.0 (Encrypt=Strict) ile her zaman şifrelenir. TDS 8.0'ın en düşük TLS sürüm gereksinimi yoktur ve TLS 1.3'i destekler. TLS 1.3 desteği işletim sistemi sürümüne bağlıdır. Aşağıdaki tabloda, şifreleme seçenekleri ve karşılık gelen TLS ve TDS sürümleriyle çeşitli senaryolar özetlenmektedir.

Şifrelemek
option
TLS sürümü etkin İşletim sistemi sürümü Beklenen
bağlantı
sonuç
Notes
Sıkı Yalnızca TLS 1.3 (veya üzeri) Windows 11

Windows Server 2022 ve üzeri
Success TLS 1.3 müzakere edildi; TDS 8.0 etkinleştirildi (Şifreleme=Katı)
Sıkı TLS 1.2 ve TLS 1.3 Windows 11

Windows Server 2022 ve üzeri
Success TLS 1.3 müzakere edildi; TDS 8.0 etkinleştirildi (Şifreleme=Katı)
Sıkı Yalnızca TLS 1.2 (veya öncesi) Windows 11

Windows Server 2022 ve üzeri
Success TLS 1.2 müzakere edildi; TDS 8.0 tetiklendi (Encrypt=Strict)
Sıkı Yalnızca TLS 1.2 (veya öncesi) Windows 10

Windows Server 2019 / 2016
Success TLS 1.2 müzakere edildi; TDS 8.0 tetikleniyor (TLS 1.3 kullanılamıyor)
Mandatory Yalnızca TLS 1.3 (veya üzeri) Windows 11

Windows Server 2022 ve üzeri
Failure Encrypt=Mandatory, TDS 8.0 için TLS 1.3 ile uyumsuz
Mandatory TLS 1.2 ve TLS 1.3 Windows 11

Windows Server 2022 ve üzeri
Success TLS 1.2 müzakere edildi; TDS 8.0 tetiklenmedi (Encrypt=Mandatory)
Mandatory Yalnızca TLS 1.2 (veya öncesi) Windows 11

Windows Server 2022 ve üzeri
Success TLS 1.2 müzakere edildi; TDS 8.0 tetiklenmedi (Encrypt=Mandatory)
Mandatory Yalnızca TLS 1.2 (veya öncesi) Windows 10

Windows Server 2019 / 2016
Success TLS 1.2 müzakere edildi; TDS 8.0 bu işletim sisteminde desteklenmiyor (TDS 7.x kullanır)
Opsiyonel Yalnızca TLS 1.3 (veya üzeri) Windows 11

Windows Server 2022 ve üzeri
Failure Encrypt=optional (false), TLS 1.3 ile uyumlu olmayan TDS 7.x'tir.
Opsiyonel TLS 1.2 ve TLS 1.3 Windows 11

Windows Server 2022 ve üzeri
Success TLS 1.3 müzakere edildi; TDS 8.0 tetiklenmedi (Encrypt=optional)
Opsiyonel Yalnızca TLS 1.2 (veya öncesi) Windows 11

Windows Server 2022 ve üzeri
Success TLS 1.2 müzakere edildi; TDS 8.0 tetiklenmedi (Encrypt=optional)
Opsiyonel Yalnızca TLS 1.2 (veya öncesi) Windows 10

Windows Server 2019 / 2016
Success TLS 1.2 müzakeresi gerçekleştirildi; şifreleme isteğe bağlı; bağlantı devam edebilir.
şifreleme olmadan başarmak
Herhangi biri Yalnızca TLS 1.3 (veya üzeri) Windows 10

Windows Server 2019 / 2016
Failure TLS 1.3 bu işletim sisteminde desteklenmiyor

İstemcilerin farklı TDS sürümlerini nasıl kullandığı hakkında daha fazla bilgi için , Bağlantı dizesi şifreleme özelliklerindeki değişiklikler bölümündeki anahtar sözcük kullanımı bölümüne bakın.

SQL Server 2025 desteği

SQL Server 2025 (17.x), aşağıdaki komut satırı araçları ve SQL Server özellikleri için TDS 8.0 desteği sunar:

1TDS 8.0 desteği, bu özelliklerde uyumsuzluk yaratan değişiklikler sunar.

Katı bağlantı şifrelemesi

TDS 8.0'ı kullanmak için SQL Server 2022 (16.x), SQL Server sürücülerine (strict) ek bağlantı şifreleme seçeneği olarak eklendiEncrypt=strict. Bağlantı şifreleme türünü kullanmak strict için .NET, ODBC, OLE DB, JDBC, PHP ve Python sürücülerinin en son sürümünü indirin:

Ortadaki adam saldırısını strict bağlantı şifrelemesi ile önlemek için, kullanıcılar TrustServerCertificate seçeneğini true olarak ayarlayamaz ve sunucunun sağladığı herhangi bir sertifikayı kabul edemez. Bunun yerine, kullanıcılar güvenilmesi gereken HostNameInCertificate sertifikayı belirtmek için ServerName seçeneğini kullanır. Sunucu tarafından sağlanan sertifikanın sertifika doğrulamasını geçirmesi gerekir. Sertifika doğrulaması hakkında daha fazla bilgi için bkz. SQL Server için sertifika gereksinimleri

Bağlantı dizesi şifreleme özelliklerinde ek değişiklikler

İletişimi şifrelemek için bağlantı dizelerine aşağıdaki seçenekler eklenir:

Anahtar sözcük Varsayılan Açıklama
Encrypt false Önceki bağlantı dizesi seçenekleri

Geçerli seçenekler şunlardır:
- trueveya yes
- falseveya no.
Daha fazla bilgi için bkz. Bağlantı Dizesi Sözdizimi. olduğunda true, sunucuda bir sertifika yüklüyse SQL Server, istemci ile sunucu arasında değiştirilen tüm veriler için TLS 1.2 şifrelemesini kullanır.

En son bağlantı dizesi seçenekleri

Geçerli seçenekler şunlardır:
- strict
- mandatory, veya trueveya yes
- optional, veya falseveya no.

olarak ayarlandığında strictSQL Server, istemci ile sunucu arasında değiştirilen tüm veriler için TDS 8.0 kullanır.

, mandatoryveya trueolarak yesayarlandığında, SQL Server, sunucuda yüklü bir sertifika varsa istemci ile sunucu arasında gönderilen tüm veriler için TLS/SSL şifrelemesi ile TDS 7.x kullanır.

, optionalveya falseolarak noayarlandığında, bağlantı TDS 7.x kullanır ve yalnızca SQL Server tarafından gerekli olduğunda şifrelenir.
TrustServerCertificate false Önceki bağlantı dizesi seçeneği

Olarak ayarlandığında true (önerilmez), sürücü sunucu TLS/SSL sertifikasını doğrulamaz. Eğer true ise, iletişim katmanı TLS kullanılarak şifrelendiğinde sunucu TLS/SSL sertifikasına otomatik olarak güvenilir (doğrulama atlanır).

ise false, sürücü sunucu TLS/SSL sertifikasını doğrular. Sunucu sertifikası doğrulaması başarısız olursa, sürücü bir hata oluşturur ve bağlantıyı kapatır. Varsayılan değer şudur: false. TLS/SSL bağlantısının başarılı olması için serverName değerinin, Common Name (CN) sunucu sertifikasındaki Subject Alternate Name veya DNS adıyla tam olarak eşleştiğinden emin olun.

Microsoft SQL Server ODBC Sürücüsü 18 ve üzeri için davranış değişikliği

olarak ayarlanırsa Encryptstrict, bu ayar sunucu sertifikası doğrulaması için kullanılacak sertifikanın konumunu belirtir (tam eşleşme). Sürücü PEM, DER ve CER dosya uzantılarını destekler.

Eğer Encrypt, true veya false olarak ayarlanırsa ve TrustServerCertificate özelliği belirtilmezse veya null, true veya false olarak ayarlanırsa, sürücü SQL Server TLS/SSL sertifikasını doğrulamak için bağlantı URL'sindeki ServerName özelliğini konak adı olarak kullanır.
HostNameInCertificate null SQL Server TLS/SSL sertifikasının doğrulanmasında kullanılacak ana bilgisayar adı. HostNameInCertificate özelliği belirtilmemişse veya null olarak ayarlanmışsa, sürücü conhost adı olarak ServerName özellik değerini kullanarak SQL Server TLS/SSL sertifikasını doğrular.