Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Server 2022 (16.x), Azure SQL Database en Azure SQL Managed Instance ondersteunen TDS (Tabular Data Stream) 8.0.
Het TDS-protocol (Tabular Data Stream) is een toepassingslaagprotocol dat door clients wordt gebruikt om verbinding te maken met SQL Server. SQL Server maakt gebruik van TLS (Transport Layer Security) voor het versleutelen van gegevens die via een netwerk worden verzonden tussen een exemplaar van SQL Server en een clienttoepassing.
TDS is een beveiligd protocol, maar in eerdere versies van SQL Server kan versleuteling worden uitgeschakeld of niet ingeschakeld. Om te voldoen aan de standaarden voor verplichte versleuteling tijdens het gebruik van SQL Server, is er een iteratie van het TDS-protocol geïntroduceerd: TDS 8.0.
De TLS-handshake gaat nu vooraf aan TDS-berichten, verpakt de TDS-sessie in TLS om versleuteling af te dwingen, TDS 8.0 uit te lijnen met HTTPS en andere webprotocollen. Deze verbetering draagt aanzienlijk bij aan de beheerbaarheid van TDS-verkeer, omdat standaardnetwerkapparaten nu SQL-query's kunnen filteren en veilig kunnen doorgeven.
Een voordeel van TDS 8.0 vergeleken met eerdere TDS-versies is de compatibiliteit met TLS 1.3 en TLS-standaarden die moeten worden geleverd. TDS 8.0 is ook volledig compatibel met TLS 1.2 en eerdere TLS-versies.
Hoe TDS werkt
Het TDS-protocol (Tabular Data Stream) is een protocol op toepassingsniveau dat wordt gebruikt voor de overdracht van aanvragen en responsen tussen clients en databaseserversystemen. Het clientsysteem brengt doorgaans een langdurige verbinding tot stand met de server. Zodra de verbinding tot stand is gebracht met behulp van een protocol op transportniveau, worden TDS-berichten uitgewisseld om te communiceren tussen de client en SQL Server.
Tijdens de levensduur van de TDS-sessie zijn er drie fasen:
- Initialisatie
- Authenticatie
- Gegevensuitwisseling
Versleuteling wordt tijdens de eerste fase onderhandeld, maar TDS-onderhandeling vindt plaats via een niet-versleutelde verbinding. De SQL Server-verbinding ziet er als volgt uit voor eerdere versies van TDS 8.0:
TCP-handshake ➡️ TDS-prelogin (tekst) en antwoord (tekst) ➡️ TLS-handshake ➡️ authenticatie (versleuteld) ➡️ gegevensuitwisseling (kan versleuteld zijn of niet)
Met de introductie van TDS 8.0 zijn de SQL Server-verbindingen als volgt:
TCP-handshake ➡️ TLS-handshake ➡️ TDS-prelogin (versleuteld) en reactie (versleuteld) ➡️ authenticatie (versleuteld) ➡️ gegevensuitwisseling (versleuteld)
Compatibiliteitsmatrix voor TDS-, TLS-, besturingssysteem- en versleutelingsopties
U kunt zowel TLS 1.2- als TLS 1.3-versies op besturingssysteemniveau inschakelen, waardoor clientverbindingen met SQL Server meerdere TDS-protocolversies (TDS 7.x en 8.0) kunnen gebruiken. Afhankelijk van de versie van het besturingssysteem is TLS 1.2 en TLS 1.3 standaard ingeschakeld.
Alleen TDS 7.x ondersteunt niet-versleutelde (optionele) communicatie, TDS 8.0 biedt geen ondersteuning voor dit. TDS 7.x ondersteunt versleuteling met TLS tot versie 1.2. TDS 8.0 vereist versleuteling: alles wordt altijd versleuteld met TDS 8.0 (Encrypt=Strict). TDS 8.0 heeft geen minimale TLS-versievereiste en ondersteunt TLS 1.3. TLS 1.3-ondersteuning is afhankelijk van de versie van het besturingssysteem. De volgende tabel bevat een overzicht van verschillende scenario's met de versleutelingsopties en de bijbehorende TLS- en TDS-versies.
| Coderen option |
TLS-versie ingeschakeld | Versie van het besturingssysteem | Verwacht verbinding resultaat |
Opmerkingen |
|---|---|---|---|---|
| Streng | Alleen TLS 1.3 (of hoger) | Windows 11 Windows Server 2022 en hoger |
Success | TLS 1.3 onderhandeld; TDS 8.0 geactiveerd (Encrypt=Strict) |
| Streng | TLS 1.2 en TLS 1.3 | Windows 11 Windows Server 2022 en hoger |
Success | TLS 1.3 onderhandeld; TDS 8.0 geactiveerd (Encrypt=Strict) |
| Streng | Alleen TLS 1.2 (of eerder) | Windows 11 Windows Server 2022 en hoger |
Success | TLS 1.2 onderhandeld; TDS 8.0 geactiveerd (Encrypt=Strict) |
| Streng | Alleen TLS 1.2 (of eerder) | Windows 10 Windows Server 2019 / 2016 |
Success | TLS 1.2 onderhandeld; TDS 8.0 geactiveerd (TLS 1.3 is niet beschikbaar) |
| Mandatory | Alleen TLS 1.3 (of hoger) | Windows 11 Windows Server 2022 en hoger |
Failure | Encrypt=Mandatory is niet compatibel met TLS 1.3 voor TDS 8.0 |
| Mandatory | TLS 1.2 en TLS 1.3 | Windows 11 Windows Server 2022 en hoger |
Success | TLS 1.2 onderhandeld; TDS 8.0 niet geactiveerd (Encrypt=Mandatory) |
| Mandatory | Alleen TLS 1.2 (of eerder) | Windows 11 Windows Server 2022 en hoger |
Success | TLS 1.2 onderhandeld; TDS 8.0 niet geactiveerd (Encrypt=Mandatory) |
| Mandatory | Alleen TLS 1.2 (of eerder) | Windows 10 Windows Server 2019 / 2016 |
Success | TLS 1.2 onderhandeld; TDS 8.0 wordt niet ondersteund op dit besturingssysteem (gebruikt TDS 7.x) |
| Optioneel | Alleen TLS 1.3 (of hoger) | Windows 11 Windows Server 2022 en hoger |
Failure | Encrypt=Optional (false) betekent TDS 7.x, wat niet compatibel is met TLS 1.3. |
| Optioneel | TLS 1.2 en TLS 1.3 | Windows 11 Windows Server 2022 en hoger |
Success | TLS 1.3 tot stand gekomen; TDS 8.0 niet geactiveerd (Encryptie=Optioneel) |
| Optioneel | Alleen TLS 1.2 (of eerder) | Windows 11 Windows Server 2022 en hoger |
Success | TLS 1.2 overeengekomen; TDS 8.0 niet geactiveerd (Encrypt=Optional) |
| Optioneel | Alleen TLS 1.2 (of eerder) | Windows 10 Windows Server 2019 / 2016 |
Success | TLS 1.2 onderhandeld; versleuteling optioneel; verbinding kan slagen zonder versleuteling |
| Welke dan ook | Alleen TLS 1.3 (of hoger) | Windows 10 Windows Server 2019 / 2016 |
Failure | TLS 1.3 wordt niet ondersteund in dit besturingssysteem |
Zie het trefwoordengebruik in de sectie Wijzigingen in de eigenschappen van versleutelingseigenschappen voor verbindingsreeksen voor meer informatie over hoe clients verschillende TDS-versies gebruiken.
Ondersteuning voor SQL Server 2025
Sql Server 2025 (17.x) Preview introduceert TDS 8.0-ondersteuning voor de volgende opdrachtregelprogramma's en SQL Server-functies:
- SQL Server Agent
- sqlcmd-hulpprogramma
- bcp-hulpprogramma
- SQL VSS Writer
- SQL CEIP-service
- Polybase
- AlwaysOn-beschikbaarheidsgroepen
- AlwaysOn-failoverclusterexemplaar (FCI)
- Gekoppelde servers1
- Transactionele replicatie1
- Replicatie samenvoegen1
- Momentopnamereplicatie1
- Logboekverzending1
1Ondersteuning voor TDS 8.0 introduceert belangrijke wijzigingen in deze functies.
Strikte verbindingsversleuteling
Als u TDS 8.0 wilt gebruiken, heeft SQL Server 2022 (16.x) strict toegevoegd als extra verbindingsversleutelingsoptie voor SQL Server-stuurprogramma's (Encrypt=strict). Als u het strict verbindingsversleutelingstype wilt gebruiken, downloadt u de nieuwste versie van de stuurprogramma's .NET, ODBC, OLE DB, JDBC, PHP en Python:
- Microsoft ADO.NET voor SQL Server en Azure SQL Database versie 5.1 of hoger
- ODBC-stuurprogramma voor SQL Server versie 18.1.2.1 of hoger
- Microsoft OLE DB-stuurprogramma voor SQL Server versie 19.2.0 of hoger
- Microsoft JDBC-stuurprogramma voor SQL Server versie 11.2.0 of hoger
- Microsoft-stuurprogramma's voor PHP voor SQL Server versie 5.10 of hoger
- Python SQL-stuurprogramma - pyodbc
nl-NL: Om een man-in-the-middle-aanval met strict verbindingsversleuteling te voorkomen, kunnen gebruikers de TrustServerCertificate optie niet instellen op true of toestaan dat een door de server verstrekt certificaat wordt geaccepteerd. In plaats daarvan gebruiken gebruikers de HostNameInCertificate optie om het certificaat ServerName op te geven dat moet worden vertrouwd. Het certificaat dat door de server wordt geleverd, moet slagen voor de certificaatvalidatie. Zie Certificaatvereisten voor SQL Server voor meer informatie over certificaatvalidatie
Functies die geen ondersteuning bieden voor het afdwingen van strikte versleuteling
De Force Strict Encryption optie die is toegevoegd met TDS 8.0 in SQL Server-netwerkconfiguratie dwingt alle clients te gebruiken strict als het versleutelingstype. Clients of functies zonder de strict verbindingsversleuteling kunnen geen verbinding maken met SQL Server.
De volgende functies of hulpprogramma's gebruiken nog steeds eerdere versies van stuurprogramma's die geen ondersteuning bieden voor TDS 8.0 en werken mogelijk niet met de versleuteling van de strict verbinding:
- Database e-mail
Aanvullende wijzigingen in versleutelingseigenschappen voor verbindingsreeksen
De volgende opties worden toegevoegd aan verbindingsreeksen om communicatie te versleutelen:
| Trefwoord | Verstek | Beschrijving |
|---|---|---|
Encrypt |
onwaar |
Vorige verbindingsreeksopties Geldige opties zijn - true of yes - false, of no. Zie De syntaxis van de verbindingsreeks voor meer informatie. Wanneer trueSQL Server TLS 1.2-versleuteling gebruikt voor alle gegevens die worden uitgewisseld tussen de client en de server als er een certificaat is geïnstalleerd op de server.Meest recente opties voor verbindingsreeksen Geldige opties zijn - strict - mandatory, of true, of yes - optional, of false, of no. Wanneer dit is ingesteld strict, gebruikt SQL Server TDS 8.0 voor alle gegevens die worden uitgewisseld tussen de client en de server.Wanneer deze optie is ingesteld op mandatory, trueof yes, gebruikt SQL Server TDS 7.x met TLS/SSL-versleuteling voor alle gegevens die worden verzonden tussen de client en de server als er een certificaat is geïnstalleerd op de server.Als deze optie is ingesteld op optional, falseof no, gebruikt de verbinding TDS 7.x en wordt deze alleen versleuteld indien vereist door de SQL Server. |
TrustServerCertificate |
onwaar |
Vorige verbindingsreeksoptie Als dit is ingesteld op true (niet aanbevolen), valideert het stuurprogramma het TLS/SSL-certificaat van de server niet. Als true het TLS/SSL-certificaat van de server automatisch wordt vertrouwd (waardoor de validatie wordt omzeild) wanneer de communicatielaag wordt versleuteld met TLS.Als falsehet stuurprogramma het TLS/SSL-certificaat van de server valideert. Als de validatie van het servercertificaat mislukt, genereert het stuurprogramma een fout en wordt de verbinding gesloten. De standaardwaarde is false. Zorg ervoor dat de doorgegeven waarde van serverName exact overeenkomt met de Common Name (CN) of DNS-naam in het Subject Alternate Name in het servercertificaat, zodat een TLS/SSL-verbinding slaagt.Wijziging van gedrag voor ODBC-stuurprogramma van Microsoft SQL Server 18 en hoger Als Encrypt is ingesteld op strict, geeft deze instelling de locatie van het certificaat op dat moet worden gebruikt voor validatie van servercertificaten (exacte overeenkomst). Het stuurprogramma ondersteunt PEM-, DER- en CER-bestandsextensies.Als Encrypt is ingesteld op true of false, en de TrustServerCertificate eigenschap niet is opgegeven of is ingesteld op null, true of false, gebruikt het stuurprogramma de ServerName eigenschapwaarde in de verbindings-URL als hostnaam voor het valideren van het TLS/SSL-certificaat van SQL Server. |
HostNameInCertificate |
null |
De hostnaam die moet worden gebruikt voor het valideren van het TLS/SSL-certificaat van SQL Server. Als de HostNameInCertificate eigenschap niet is opgegeven of is ingesteld nullop, gebruikt het stuurprogramma de ServerName eigenschapswaarde als hostnaam om het TLS/SSL-certificaat van SQL Server te valideren. |