Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2022 (16.x)
Azure SQL-adatbázis
Felü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.
- 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 – pyodbc
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 true az 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 : , false yes és no . További információ: Kapcsolati sztring szintaxisa.Viselkedésváltozás Ha be van állítva, az strict SQL 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 true a 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. |