Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2022 (16.x) a novější verze
databáze SQL Azure SQL Database
Azure SQL Managed Instance
v 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:
- agenta SQL Serveru
- nástroj sqlcmd
- nástroj bcp
- Zapisovač SQL VSS
- Služba SQL CEIP
- Databázová pošta
- Polybase
- Skupiny dostupnosti AlwaysOn
- Instance clusteru s podporou převzetí služeb při selhání AlwaysOn (FCI)
- Propojené servery1
- Transakční replikace1
- Sloučení replikace1
- Replikace snímků1
- Odeslání protokolu1
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:
- Microsoft ADO.NET pro SQL Server a Azure SQL Database verze 5.1 nebo novější
- ovladač ODBC pro SQL Server verze 18.1.2.1 nebo novější
- ovladač Microsoft OLE DB pro SQL Server verze 19.2.0 nebo novější
- ovladač Microsoft JDBC pro SQL Server verze 11.2.0 nebo novější
- ovladače Microsoftu pro PHP pro SQL Server verze 5.10 nebo vyšší
- ovladač SQL Pythonu – pyodbc
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. |