Sdílet prostřednictvím


TDS 8.0

Platí pro: SQL Server 2022 (16.x) a novější verze databáze SQL Azure SQL DatabaseAzure SQL Managed Instancev Microsoft Fabric

SQL Server 2022 (16.x), Azure SQL Database a Azure SQL Managed Instance podporují tabulkový datový stream (TDS) 8.0.

Protokol Tabulkového datového streamu (TDS) je protokolem aplikační vrstvy, který klienti používají pro připojení k SQL Serveru. SQL Server používá protokol TLS (Transport Layer Security) k šifrování dat přenášených přes síť mezi instancí SQL Serveru a klientskou aplikací.

TDS je zabezpečený protokol, ale v předchozích verzích SQL Serveru může být šifrování vypnuté nebo nepovoleno. Pro splnění standardů povinného šifrování při používání SQL Serveru byla zavedena iterace protokolu TDS: TDS 8.0.

Rukování TLS teď předchází všem zprávám TDS, zabaluje relaci TDS do TLS, aby se vynutilo šifrování, a sjednotí TDS 8.0 s HTTPS a dalšími webovými protokoly. Toto vylepšení významně přispívá ke správě provozu TDS, protože standardní síťová zařízení teď můžou filtrovat a bezpečně předávat dotazy SQL.

Výhodou TDS 8.0 oproti předchozím verzím TDS je kompatibilita s protokolem TLS 1.3 a přichází standardy TLS. TDS 8.0 je také plně kompatibilní s protokolem TLS 1.2 a předchozími verzemi PROTOKOLU TLS.

Jak TDS funguje

Protokol TDS (Tabular Data Stream) je protokol na úrovni aplikace používaný k přenosu požadavků a odpovědí mezi klienty a databázovými serverovými systémy. Klientský systém obvykle vytváří dlouhodobé připojení k serveru. Po navázání připojení pomocí protokolu na úrovni přenosu se zprávy TDS vyměňují za účelem komunikace mezi klientem a SQL Serverem.

Během životnosti relace TDS existují tři fáze:

  • Inicializace
  • Autentizace
  • Výměna dat

Šifrování se vyjedná během počáteční fáze, ale vyjednávání TDS probíhá přes nešifrované připojení. Připojení k SQL Serveru vypadá takto pro předchozí verze TDS 8.0:

TCP handshake ➡️ TDS prelogin (čistý text) a odpověď (čistý text) ➡️ TLS handshake ➡️ autentizace (šifrovaná) ➡️ výměna dat (může být šifrovaná nebo nešifrovaná)

Při zavedení TDS 8.0 jsou připojení SQL Serveru následující:

TCP handshake ➡️ TLS handshake ➡️ TDS prelogin (šifrovaný) a odpověď (šifrovaná) ➡️ autentizace (šifrovaná) ➡️ výměna dat (šifrovaná)

Matice kompatibility pro možnosti TDS, TLS, operačního systému a šifrování

Na úrovni operačního systému můžete povolit jak verze TLS 1.2, tak TLS 1.3, což umožňuje klientským připojením k SQL Serveru používat více verzí protokolu TDS (TDS 7.x a 8.0). V závislosti na verzi operačního systému můžou být ve výchozím nastavení povolené protokoly TLS 1.2 a TLS 1.3.

Pouze TDS 7.x podporuje nešifrovanou (volitelnou) komunikaci, TDS 8.0 toto nepodporuje. TDS 7.x podporuje šifrování pomocí protokolu TLS až do verze 1.2. TDS 8.0 vyžaduje šifrování – vše se vždy šifruje pomocí TDS 8.0 (Encrypt=Strict). TDS 8.0 nemá žádný minimální požadavek na verzi protokolu TLS a podporuje protokol TLS 1.3. Podpora protokolu TLS 1.3 závisí na verzi operačního systému. Následující tabulka shrnuje různé scénáře s možnostmi šifrování a odpovídajícími verzemi TLS a TDS.

Zašifrovat
option
Povolená verze protokolu TLS Verze operačního systému Očekávaný
propojení
výsledek
Poznámky
Strict Pouze protokol TLS 1.3 (nebo novější) Windows 11

Windows Server 2022 a novější
Success Vyjednaný protokol TLS 1.3; Aktivovaný TDS 8.0 (Encrypt=Strict)
Strict TLS 1.2 a TLS 1.3 Windows 11

Windows Server 2022 a novější
Success Vyjednaný protokol TLS 1.3; Aktivovaný TDS 8.0 (Encrypt=Strict)
Strict Pouze protokol TLS 1.2 (nebo starší) Windows 11

Windows Server 2022 a novější
Success Vyjednaný protokol TLS 1.2; Aktivovaný TDS 8.0 (Encrypt=Strict)
Strict Pouze protokol TLS 1.2 (nebo starší) Systém Windows 10

Windows Server 2019 / 2016
Success Vyjednaný protokol TLS 1.2; Aktivovaný TDS 8.0 (protokol TLS 1.3 není k dispozici)
Povinné Pouze protokol TLS 1.3 (nebo novější) Windows 11

Windows Server 2022 a novější
Failure Encrypt=Mandatory není kompatibilní s protokolem TLS 1.3 pro TDS 8.0
Povinné TLS 1.2 a TLS 1.3 Windows 11

Windows Server 2022 a novější
Success Vyjednaný protokol TLS 1.2; TDS 8.0 se neaktivuje (Encrypt=Mandatory)
Povinné Pouze protokol TLS 1.2 (nebo starší) Windows 11

Windows Server 2022 a novější
Success Vyjednaný protokol TLS 1.2; TDS 8.0 se neaktivuje (Encrypt=Mandatory)
Povinné Pouze protokol TLS 1.2 (nebo starší) Systém Windows 10

Windows Server 2019 / 2016
Success Vyjednaný protokol TLS 1.2; TDS 8.0 není v tomto operačním systému podporován (používá TDS 7.x)
Volitelný Pouze protokol TLS 1.3 (nebo novější) Windows 11

Windows Server 2022 a novější
Failure Encrypt=Optional (false) je TDS 7.x, což není kompatibilní s protokolem TLS 1.3.
Volitelný TLS 1.2 a TLS 1.3 Windows 11

Windows Server 2022 a novější
Success Vyjednaný protokol TLS 1.3; TDS 8.0 se neaktivuje (Encrypt=Optional)
Volitelný Pouze protokol TLS 1.2 (nebo starší) Windows 11

Windows Server 2022 a novější
Success Vyjednaný protokol TLS 1.2; TDS 8.0 se neaktivuje (Encrypt=Optional)
Volitelný Pouze protokol TLS 1.2 (nebo starší) Systém Windows 10

Windows Server 2019 / 2016
Success Vyjednán TLS 1.2; šifrování je volitelné; připojení může
uspět bez šifrování
Jakýkoliv Pouze protokol TLS 1.3 (nebo novější) Systém Windows 10

Windows Server 2019 / 2016
Failure Protokol TLS 1.3 není v tomto operačním systému podporován.

Další informace o tom, jak klienti používají různé verze TDS, najdete v části Změny vlastností šifrování připojovacího řetězce použití klíčových slov.

Podpora SQL Serveru 2025

SQL Server 2025 (17.x) zavádí podporu TDS 8.0 pro následující nástroje příkazového řádku a funkce SQL Serveru:

1Podpora TDS 8.0 zavádí zásadní změny těchto funkcí.

Striktní šifrování připojení

Pokud chcete použít TDS 8.0, SQL Server 2022 (16.x) přidal strict jako další možnost šifrování připojení pro ovladače SQL Serveru (Encrypt=strict). Pokud chcete použít strict typ šifrování připojení, stáhněte si nejnovější verzi ovladačů .NET, ODBC, OLE DB, JDBC, PHP a Python:

Aby se zabránilo útoku typu man-in-the-middle při šifrování připojení strict, uživatelé nesmí nastavit možnost TrustServerCertificate na true a povolit jakýkoli certifikát poskytovaný serverem. Místo toho by uživatelé použili možnost HostNameInCertificate k určení ServerName certifikátu, který by měl být důvěryhodný. Certifikát poskytnutý serverem musí projít ověřením certifikátu. Další informace o ověření certifikátu najdete v tématu Požadavky na certifikáty pro SQL Server.

Další změny vlastností šifrování připojovacího řetězce

Do připojovacích řetězců pro šifrování komunikace se přidají následující možnosti:

Klíčové slovo Výchozí Popis
Encrypt falešný Předchozí možnosti připojovacího řetězce

Platné možnosti jsou
- true nebo yes
- falsenebo no.
Další informace naleznete v tématu Syntaxe připojovacího řetězce. Pokud truesql Server používá šifrování TLS 1.2 pro všechna data vyměňovaná mezi klientem a serverem, pokud má server nainstalovaný certifikát.

Nejnovější možnosti připojovacího řetězce

Platné možnosti jsou
- strict
- mandatory, nebo true, nebo yes
- optionalnebo , nebo falseno.

Při nastavení strictpoužívá SQL Server TDS 8.0 pro všechna data vyměňovaná mezi klientem a serverem.

Při nastavení na mandatory, truenebo yessql Server používá TDS 7.x s šifrováním TLS/SSL pro všechna data odesílaná mezi klientem a serverem, pokud má server nainstalovaný certifikát.

Pokud je nastavena hodnota optional, falsenebo no, připojení používá TDS 7.x a bude zašifrováno pouze v případě, že to vyžaduje SQL Server.
TrustServerCertificate falešný Předchozí možnost připojovacího řetězce

Pokud je nastavená hodnota true (nedoporučuje se), ovladač neověřuje certifikát TLS/SSL serveru. Pokud trueje serverový certifikát TLS/SSL automaticky důvěryhodný (obejití ověřování), když je komunikační vrstva šifrovaná pomocí protokolu TLS.

Pokud false, ovladač ověří certifikát TLS/SSL serveru. Pokud ověření certifikátu serveru selže, ovladač vyvolá chybu a ukončí připojení. Výchozí hodnota je false. Ujistěte se, že hodnota předaná serverName přesně odpovídá názvu Common Name (CN) nebo DNS v Subject Alternate Name v certifikátu serveru pro úspěšné připojení TLS/SSL.

Změna chování ovladače MICROSOFT SQL Server ODBC 18 a novější

Pokud je Encrypt nastavena na strict, toto nastavení určuje umístění certifikátu, který se má použít pro ověření certifikátu serveru (přesná shoda). Ovladač podporuje přípony souborů PEM, DER a CER.

Pokud je Encrypt nastavena na true nebo falsea vlastnost TrustServerCertificate není zadána nebo je nastavena na null, truenebo false, ovladač použije hodnotu vlastnosti ServerName na adrese URL připojení jako název hostitele k ověření certifikátu TLS/SSL SQL Serveru.
HostNameInCertificate null Název hostitele, který se má použít při ověřování certifikátu TLS/SSL SQL Serveru. Pokud je vlastnost HostNameInCertificate nezadaná nebo nastavená na null, ovladač použije hodnotu vlastnosti ServerName jako název hostitele k ověření certifikátu TLS/SSL SQL Serveru.