Megosztás a következőn keresztül:


TDS 8.0

A következőkre vonatkozik: SQL Server 2022 (16.x) Azure SQL-adatbázisFelügyelt Azure SQL-példány

Az SQL Server 2022 (16.x), az Azure SQL Database és az Azure SQL Managed Instance támogatja a táblázatos adatfolyam (TDS) 8.0-s verziójának támogatását.

A Táblázatos adatfolyam (TDS) protokoll egy alkalmazásréteg protokoll, amelyet az ügyfelek az SQL Serverhez való csatlakozáshoz használnak. Az SQL Server a Transport Layer Security (TLS) használatával titkosítja az SQL Server egy példánya és egy ügyfélalkalmazás között hálózaton keresztül továbbított adatokat.

A TDS egy biztonságos protokoll, de az SQL Server korábbi verzióiban a titkosítás kikapcsolható vagy nem engedélyezett. Az SQL Server használata során a kötelező titkosítási szabványoknak való megfelelés érdekében bevezettük a TDS protokoll iterációját: TDS 8.0.

A TLS-kézfogás most már megelőzi a TDS-üzeneteket, a TDS-munkamenetet a TLS-ben burkolja a titkosítás kényszerítése érdekében, így a TDS 8.0 igazodik a HTTPS-hez és más webes protokollokhoz. Ez jelentősen hozzájárul a TDS-forgalom kezelhetőségéhez, mivel a standard hálózati berendezések mostantól képesek szűrni és biztonságosan átengedni az SQL-lekérdezéseket.

A TDS 8.0 másik előnye a korábbi TDS-verziókhoz képest, hogy kompatibilis a TLS 1.3-zal és a TLS szabványokkal. A TDS 8.0 teljes mértékben kompatibilis a TLS 1.2-vel és a korábbi TLS-verziókkal is.

A TDS működése

A Tabular Data Stream (TDS) protokoll egy alkalmazásszintű protokoll, amely a kérések és válaszok ügyfelek és adatbázis-kiszolgáló rendszerek közötti átvitelére szolgál. Ezekben a rendszerekben az ügyfél általában hosszú élettartamú kapcsolatot létesít a kiszolgálóval. Miután létrejött a kapcsolat egy átviteli szintű protokoll használatával, a TDS-üzenetek az ügyfél és a kiszolgáló közötti kommunikációra szolgálnak.

A TDS-munkamenet élettartama alatt három fázis van:

  • Inicializálás
  • Hitelesítés
  • Adatcsere

A titkosítás egyeztetése a kezdeti fázisban történik, de a TDS-egyeztetés titkosítatlan kapcsolaton keresztül történik. Az SQL Server-kapcsolat így néz ki a TDS 8.0 korábbi verzióihoz:

TCP-kézfogás ➡️ TDS előbejelentkezés (szöveges formátum) és válasz (szöveges formátum) ➡️ TLS-kézfogás ➡️ hitelesítés (titkosított) ➡️ adatcsere (lehet titkosított vagy nem titkosított)

A TDS 8.0 bevezetésével az SQL Server-kapcsolatok a következők:

TCP handshake ➡️ TLS handshake ➡️ TDS prelogin (titkosított) és válaszadás (titkosított) ➡️ hitelesítés (titkosított) ➡️ adatcsere (titkosított)

AZ SQL Server 2025 támogatása

Az SQL Server 2025 (17.x) előzetes verziója a következő parancssori eszközök TDS 8.0-s támogatását mutatja be:

Szigorú kapcsolattitkosítás

A TDS 8.0 használatához az SQL Server 2022 (16.x) hozzáadta a strict további kapcsolattitkosítási típusként az SQL Server-illesztőprogramokhoz (Encrypt=strict). A kapcsolattitkosítás strict típusának használatához töltse le a .NET, ODBC, OLE DB, JDBC, PHP és Python illesztőprogramok legújabb verzióját.

Az strict kapcsolat titkosítása révén megakadályozható a köztes támadás, így a felhasználók nem állíthatják be a TrustServerCertificate opciót true-ra, és nem bízhatnak meg bármely tanúsítványban, amit a kiszolgáló biztosít. Ehelyett a felhasználók a HostNameInCertificate opciót használják annak a tanúsítványnak a megadására, amelyet meg kell bízni ServerName. A kiszolgáló által megadott tanúsítványnak át kell adnia a tanúsítványérvényesítést.

A szigorú titkosítás kényszerítését nem támogató funkciók

Az Force Strict Encryption SQL Server Network Configuration TDS 8.0-val hozzáadott lehetősége arra kényszeríti az összes ügyfelet, hogy titkosítási típusként használja strict . A kapcsolattitkosítás nélküli ügyfelek vagy szolgáltatások nem csatlakoznak az strict SQL Serverhez.

Az alábbi funkciók vagy eszközök továbbra is a TDS 8.0-t nem támogató illesztőprogramok korábbi verzióját használják, ezért előfordulhat, hogy nem működnek a strict kapcsolattitkosítással:

  • AlwaysOn rendelkezésreállási csoportok
  • Always On feladatátvevő fürtpéldány (FCI)
  • SQL Server-replikáció
  • Naplóátviteli szolgáltatás
  • SQL Server-ügynök
  • Adatbázisposta
  • Csatolt kiszolgálók

A kapcsolati sztring titkosítási tulajdonságainak további módosítása

A titkosításhoz a kapcsolati sztringekhez a következő kiegészítések lesznek hozzáadva:

Kulcsszó Alapértelmezett Leírás
Encrypt téves Meglévő viselkedés

Amikor trueaz SQL Server TLS-titkosítást használ az ügyfél és a kiszolgáló között küldött összes adathoz, ha a kiszolgáló rendelkezik tanúsítvánnyal. A felismert értékek a következőktrue: , falseyesés no. További információ: Kapcsolati sztring szintaxisa.

Viselkedésváltozás

Ha be van állítva, az strictSQL Server a TDS 8.0-t használja az ügyfél és a kiszolgáló közötti összes adathoz.

Ha mandatory, true vagy yes van beállítva, a SQL Server a TDS 7.x és TLS/SSL titkosítást használja az ügyfél és a kiszolgáló között küldött összes adathoz, ha a kiszolgálón telepítve van egy tanúsítvány.

Ha optional, false vagy no értékre van állítva, a kapcsolat TDS 7.x-et fog használni, és csak akkor lesz titkosítva, ha az SQL Server megköveteli.
TrustServerCertificate téves Meglévő viselkedés

Úgy van true beállítva, hogy az illesztőprogram ne érvényesítse a kiszolgáló TLS/SSL-tanúsítványát. Ha truea kiszolgáló TLS/SSL-tanúsítványa automatikusan megbízható, ha a kommunikációs réteg TLS használatával van titkosítva.

Ha false, az illesztőprogram ellenőrzi a kiszolgáló TLS/SSL-tanúsítványát. Ha a kiszolgálótanúsítvány érvényesítése sikertelen, az illesztőprogram hibát jelez, és bezárja a kapcsolatot. Az alapértelmezett érték a false. Győződjön meg arról, hogy az átadott serverName érték pontosan egyezik a Common Name (CN) kiszolgálótanúsítványban megadott Subject Alternate Name vagy DNS-névvel ahhoz, hogy a TLS/SSL-kapcsolat sikeres legyen.

Az SQL Serverhez készült Microsoft ODBC Driver 18 viselkedésének módosítása

Ha Encrypt be van állítva strict, ez a beállítás határozza meg a kiszolgálótanúsítvány-ellenőrzéshez használni kívánt tanúsítvány helyét (pontos egyezés). Az illesztőprogram támogatja a PEM, DER és CER fájlkiterjesztéseket.

Ha a Encrypt tulajdonság true vagy false értékre van állítva, és a TrustServerCertificate tulajdonság nincs megadva, vagy null, true vagy false értékre van állítva, akkor az illesztő a kapcsolati URL ServerName tulajdonságértékét használja állomásnévként az SQL Server TLS/SSL-tanúsítvány ellenőrzéséhez.
HostNameInCertificate nulla Az SQL Server TLS/SSL-tanúsítvány érvényesítéséhez használandó állomásnév. Ha a HostNameInCertificate tulajdonság nincs meghatározva vagy be van állítva null, az illesztőprogram a ServerName tulajdonság értékét használja állomásnévként az SQL Server TLS/SSL-tanúsítvány érvényesítéséhez.