Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik: Az SQL Server 2022 (16.x) és újabb verziói
az Azure SQL Database
Azure SQL Managed Instance
SQL-adatbázist a Microsoft Fabricben
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 tördelve kényszeríti a titkosítást, és a TDS 8.0-t a HTTPS-hez és más webes protokollokhoz igazítja. Ez a fejlesztés 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 előnye a korábbi TDS-verziókhoz képest az, hogy kompatibilis a TLS 1.3-val é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. Az ügyfélrendszer á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 rendszer TDS-üzeneteket cserél az ügyfél és az SQL Server közötti kommunikációra.
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)
Kompatibilitási mátrix tDS, TLS, operációs rendszer és titkosítási beállításokhoz
A TLS 1.2 és a TLS 1.3 verziót is engedélyezheti operációsrendszer-szinten, így az SQL Serverrel létesített ügyfélkapcsolatok több TDS-protokollverziót (TDS 7.x és 8.0) is használhatnak. Az operációs rendszer verziójától függően a TLS 1.2 és a TLS 1.3 alapértelmezés szerint engedélyezve lehet.
Csak a TDS 7.x támogatja a nem titkosított (nem kötelező) kommunikációt, a TDS 8.0 ezt nem támogatja. A TDS 7.x az 1.2-es verzióig támogatja a TLS használatával történő titkosítást. A TDS 8.0 titkosítást igényel – minden titkosítva van a TDS 8.0-val (Encryption=Strict). A TDS 8.0-nak nincs minimális TLS-verziókövetelménye, és támogatja a TLS 1.3-at. A TLS 1.3 támogatása az operációs rendszer verziójától függ. Az alábbi táblázat a különböző forgatókönyveket foglalja össze a titkosítási lehetőségekkel, valamint a megfelelő TLS- és TDS-verziókkal.
| Titkosít option |
TLS-verzió engedélyezve | Operációs rendszer verziója | Várt kapcsolat eredmény |
Jegyzetek |
|---|---|---|---|---|
| Szigorú | Csak TLS 1.3 (vagy újabb) | Windows 11 2022-Windows Server és újabb verziók |
Success | TLS 1.3 tárgyalásos; TDS 8.0 aktiválva (Encrypt=Strict) |
| Szigorú | TLS 1.2 és TLS 1.3 | Windows 11 2022-Windows Server és újabb verziók |
Success | TLS 1.3 tárgyalásos; TDS 8.0 aktiválva (Encrypt=Strict) |
| Szigorú | Csak TLS 1.2 (vagy korábbi) | Windows 11 2022-Windows Server és újabb verziók |
Success | TLS 1.2 tárgyalásos; TDS 8.0 aktiválva (Encrypt=Strict) |
| Szigorú | Csak TLS 1.2 (vagy korábbi) | Windows 10 Windows Server 2019 / 2016 |
Success | TLS 1.2 tárgyalásos; TDS 8.0 aktiválva (A TLS 1.3 nem érhető el) |
| Mandatory | Csak TLS 1.3 (vagy újabb) | Windows 11 2022-Windows Server és újabb verziók |
Failure | Az Encrypt=Kötelező beállítás nem kompatibilis a TLS 1.3-mal a TDS 8.0 esetében. |
| Mandatory | TLS 1.2 és TLS 1.3 | Windows 11 2022-Windows Server és újabb verziók |
Success | TLS 1.2 tárgyalásos; A TDS 8.0 nincs aktiválva (Encrypt=Kötelező) |
| Mandatory | Csak TLS 1.2 (vagy korábbi) | Windows 11 2022-Windows Server és újabb verziók |
Success | TLS 1.2 tárgyalásos; A TDS 8.0 nincs aktiválva (Encrypt=Kötelező) |
| Mandatory | Csak TLS 1.2 (vagy korábbi) | Windows 10 Windows Server 2019 / 2016 |
Success | TLS 1.2 tárgyalásos; A TDS 8.0 nem támogatott ezen az operációs rendszeren (TDS 7.x-et használ) |
| Opcionális | Csak TLS 1.3 (vagy újabb) | Windows 11 2022-Windows Server és újabb verziók |
Failure | A Encrypt=Optional (Nem kötelező, hamis) a TDS 7.x, amely nem kompatibilis a TLS 1.3-mal. |
| Opcionális | TLS 1.2 és TLS 1.3 | Windows 11 2022-Windows Server és újabb verziók |
Success | TLS 1.3 tárgyalásos; A TDS 8.0 nincs aktiválva (Encrypt=Optional) |
| Opcionális | Csak TLS 1.2 (vagy korábbi) | Windows 11 2022-Windows Server és újabb verziók |
Success | TLS 1.2 tárgyalásos; A TDS 8.0 nincs aktiválva (Encrypt=Optional) |
| Opcionális | Csak TLS 1.2 (vagy korábbi) | Windows 10 Windows Server 2019 / 2016 |
Success | TLS 1.2 megállapodott; az titkosítás nem kötelező; a kapcsolat lehetséges titkosítás nélkül is sikeres |
| Bármely | Csak TLS 1.3 (vagy újabb) | Windows 10 Windows Server 2019 / 2016 |
Failure | A TLS 1.3 nem támogatott ezen az operációs rendszeren |
További információ arról, hogyan használják az ügyfelek a különböző TDS-verziókat, tekintse meg a kulcsszavak használatát a kapcsolati sztring titkosítási tulajdonságainak módosítása szakaszban.
AZ SQL Server 2025 támogatása
Az SQL Server 2025 (17.x) TDS 8.0-támogatást nyújt a következő parancssori eszközökhöz és SQL Server-funkciókhoz:
- SQL Server-ügynök
- sqlcmd segédprogram
- bcp segédprogram
- SQL VSS-író
- SQL CEIP szolgáltatás
- Adatbázisposta
- Polybase
- Always On rendelkezésre állási csoportok
- Always On feladatátvevő fürtpéldány (FCI)
- Csatolt kiszolgálók1
- Tranzakciós replikáció1
- Replikáció egyesítése1
- Pillanatkép-replikáció1
- Napló szállítás1
1A TDS 8.0 támogatása kompatibilitástörő változásokat vezet be ezen funkciókban.
Szigorú kapcsolattitkosítás
A TDS 8.0 használatának érdekében az SQL Server 2022 (16.x) a kapcsolat titkosításának további lehetőségeként hozzáadta a strict és az SQL Server-illesztőprogramokhoz (Encrypt=strict). A kapcsolattitkosítási strict típus használatához töltse le a .NET, ODBC, OLE DB, JDBC, PHP és Python illesztőprogramok legújabb verzióját:
- Microsoft ADO.NET az SQL Serverhez és az Azure SQL Database 5.1-es vagy újabb verziójához
- ODBC-illesztő az SQL Server 18.1.2.1-es vagy újabb verziójához
- Microsoft OLE DB-illesztő az SQL Server 19.2.0-s vagy újabb verziójához
- Microsoft JDBC-illesztő az SQL Server 11.2.0-s vagy újabb verziójához
- Microsoft Drivers for PHP for SQL Server 5.10-es vagy újabb verzió
- Python SQL-illesztőprogram – mssql-python
A középtámadás megelőzése érdekében a kapcsolat titkosításával a felhasználók nem állíthatják be az strict opciót TrustServerCertificate-re, és nem engedélyezhetik a szerver által biztosított bármely tanúsítványt. 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 tanúsítványérvényesítésről további információt az SQL Server tanúsítványkövetelményei című témakörben talál.
A kapcsolati sztring titkosítási tulajdonságainak további módosítása
A kapcsolati sztringekhez a következő lehetőségek vannak hozzáadva a kommunikáció titkosításához:
| Kulcsszó | Alapértelmezett | Leírás |
|---|---|---|
Encrypt |
téves |
Korábbi kapcsolati sztringbeállítások Az érvényes beállítások a következők: - truevagy yes - , false vagy no. További információ: Kapcsolati sztring szintaxisa. Amikor trueaz SQL Server TLS 1.2 titkosítást használ az ügyfél és a kiszolgáló között kicserélt összes adathoz, ha a kiszolgáló rendelkezik telepített tanúsítvánnyal.A legújabb kapcsolati sztring beállításai Az érvényes beállítások a következők: - strict - mandatory, vagy true, vagy yes - optional, vagy false.no 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 adatcseréhez.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 |
Korábbi kapcsolati karakterlánc beállítás Ha be van true állítva (nem ajánlott), az illesztőprogram nem ellenőrzi a kiszolgáló TLS/SSL-tanúsítványát. Ha truea kiszolgáló TLS-/SSL-tanúsítványa automatikusan megbízható (az ellenőrzés megkerülése), amikor 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.A Microsoft SQL Server ODBC Driver 18 és újabb verziójának 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 |
null |
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. |