Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri
Microsoft Fabric'te
Azure 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:
- SQL Server Aracısı
- sqlcmd yardımcı programı
- bcp yardımcı programı
- SQL VSS Yazıcısı
- SQL CEIP hizmeti
- Veritabanı Postası
- Polybase
- Always On kullanılabilirlik grupları
- Always On yük devretme kümesi örneği (FCI)
- Bağlı sunucular1
- İşlem çoğaltması1
- Birleştirme Çoğaltma1
- Anlık görüntü çoğaltma1
- Günlük aktarımı1
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:
- SQL Server ve Azure SQL Veritabanı sürüm 5.1 veya üzeri için Microsoft ADO.NET
- SQL Server sürüm 18.1.2.1 veya üzeri için ODBC Sürücüsü
- SQL Server sürüm 19.2.0 veya üzeri için Microsoft OLE DB Sürücüsü
- SQL Server sürüm 11.2.0 veya üzeri için Microsoft JDBC Sürücüsü
- SQL Server sürüm 5.10 veya üzeri için PHP için Microsoft Sürücüleri
- Python SQL Sürücüsü - pyodbc
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. |
İlgili içerik
- Katı şifreleme ile SQL Server'a bağlanma