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
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Belangrijk
SQL Server Native Client (SNAC) wordt niet geleverd met:
- SQL Server 2022 (16.x) en latere versies
- SQL Server Management Studio 19 en latere versies
De SQL Server Native Client (SQLNCLI of SQLNCLI11) en de verouderde Microsoft OLE DB-provider voor SQL Server (SQLOLEDB) worden niet aanbevolen voor de ontwikkeling van nieuwe toepassingen.
Gebruik een van de volgende stuurprogramma's voor nieuwe projecten:
Voor SQLNCLI die als onderdeel van SQL Server Database Engine (versies 2012 tot en met 2019) wordt geleverd, raadpleegt u deze uitzondering voor de levenscyclus van ondersteuning.
SQL Server versleutelt altijd netwerkpakketten die zijn gekoppeld aan aanmelden. Als er geen certificaat is ingericht op de server tijdens het opstarten, genereert SQL Server een zelfondertekend certificaat dat wordt gebruikt voor het versleutelen van aanmeldingspakketten.
Zelfondertekende certificaten garanderen geen veiligheid. De versleutelde handshake is gebaseerd op NT LAN Manager (NTLM). U moet een verifieerbaar certificaat inrichten op SQL Server voor beveiligde connectiviteit. Transport Security Layer (TLS) kan alleen worden beveiligd met certificaatvalidatie.
Toepassingen kunnen ook versleuteling van al het netwerkverkeer aanvragen met behulp van trefwoorden voor verbindingsreeksen of verbindingseigenschappen. De trefwoorden zijn 'Versleutelen' voor ODBC en OLE DB wanneer u een providertekenreeks gebruikt met IDbInitialize::Initialize, of 'Versleuteling voor gegevens gebruiken' voor ADO en OLE DB wanneer u een initialisatietekenreeks gebruikt met IDataInitialize. Dit kan ook worden geconfigureerd door SQL Server Configuration Manager met behulp van de optie Geforceerde protocolversleuteling en door de client te configureren voor het aanvragen van versleutelde verbindingen. Standaard vereist versleuteling van al het netwerkverkeer voor een verbinding dat een certificaat op de server is ingericht. Door uw client in te stellen om het certificaat op de server te vertrouwen, bent u kwetsbaar voor man-in-the-middle-aanvallen. Als u een verifieerbaar certificaat op de server implementeert, moet u ervoor zorgen dat u de clientinstellingen wijzigt over het vertrouwen van het certificaat in FALSE.
Zie Trefwoorden voor verbindingsreeksen gebruiken met SQL Server Native Client voor informatie over trefwoorden voor verbindingsreeksen.
Als u versleuteling wilt inschakelen wanneer een certificaat niet is ingericht op de server, kan SQL Server Configuration Manager worden gebruikt om zowel force protocolversleuteling als de opties voor het vertrouwensservercertificaat in te stellen. In dit geval maakt versleuteling gebruik van een zelfondertekend servercertificaat zonder validatie als er geen verifieerbaar certificaat is ingericht op de server.
Toepassingen kunnen ook het TrustServerCertificate trefwoord of het bijbehorende verbindingskenmerk gebruiken om ervoor te zorgen dat versleuteling plaatsvindt. Toepassingsinstellingen verminderen nooit het beveiligingsniveau dat is ingesteld door SQL Server Client Configuration Manager, maar kunnen dit versterken. Als Force Protocol Encryption bijvoorbeeld niet is ingesteld voor de client, kan een toepassing zelf versleuteling aanvragen. Om versleuteling te garanderen, zelfs wanneer een servercertificaat niet is ingericht, kan een toepassing versleuteling aanvragen en TrustServerCertificate.
TrustServerCertificate Als dit echter niet is ingeschakeld in de clientconfiguratie, is er nog steeds een ingericht servercertificaat vereist. In de volgende tabel worden alle gevallen beschreven:
| Clientinstelling voor Protocolversleuteling afdwingen | Instelling van de clientinstelling voor het certificaat van de vertrouwde server | Verbindingsreeks/verbindingskenmerk Versleutelen/versleuteling gebruiken voor gegevens | Verbindingsreeks/verbindingskenmerk Trust Server-certificaat | Resultaat |
|---|---|---|---|---|
| Nee. | Niet van toepassing. | Nee (standaard) | Genegeerd | Er treedt geen versleuteling op. |
| Nee. | Niet van toepassing. | Ja | Nee (standaard) | Versleuteling vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Nee. | Niet van toepassing. | Ja | Ja | Versleuteling vindt altijd plaats, maar kan een zelfondertekend servercertificaat gebruiken. |
| Ja | Nee. | Genegeerd | Genegeerd | Versleuteling vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Ja | Ja | Nee (standaard) | Genegeerd | Versleuteling vindt altijd plaats, maar kan een zelfondertekend servercertificaat gebruiken. |
| Ja | Ja | Ja | Nee (standaard) | Versleuteling vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Ja | Ja | Ja | Ja | Versleuteling vindt altijd plaats, maar kan een zelfondertekend servercertificaat gebruiken. |
Waarschuwing
De voorgaande tabel biedt alleen een leidraad voor het systeemgedrag onder verschillende configuraties. Zorg ervoor dat zowel de client als de server versleuteling vereisen voor beveiligde connectiviteit. Zorg er ook voor dat de server een verifieerbaar certificaat heeft en dat de TrustServerCertificate instelling op de client is ingesteld FALSEop .
OLE DB-provider van SQL Server Native Client
De OLE DB-provider van de SYSTEEMeigen SQL Server-client ondersteunt versleuteling zonder validatie door de toevoeging van de eigenschap initialisatie van de SSPROP_INIT_TRUST_SERVER_CERTIFICATE gegevensbron, die wordt geïmplementeerd in de DBPROPSET_SQLSERVERDBINIT eigenschappenset. Daarnaast is er een nieuw trefwoord TrustServerCertificatevoor de verbindingsreeks toegevoegd. Het accepteert yes of no waarden; no is de standaardwaarde. Wanneer u serviceonderdelen gebruikt, worden deze geaccepteerd true of false waarden. false Dit is de standaardwaarde.
Zie Initialisatie- en autorisatie-eigenschappen (native client OLE DB-provider) voor meer informatie over verbeteringen in de DBPROPSET_SQLSERVERDBINIT eigenschappenset.
ODBC-stuurprogramma voor systeemeigen SQL Server-client
Het ODBC-stuurprogramma sql Server Native Client ondersteunt versleuteling zonder validatie door toevoegingen aan de functies SQLSetConnectAttr en SQLGetConnectAttr .
SQL_COPT_SS_TRUST_SERVER_CERTIFICATE is toegevoegd om te accepteren SQL_TRUST_SERVER_CERTIFICATE_YES of SQL_TRUST_SERVER_CERTIFICATE_NO, omdat SQL_TRUST_SERVER_CERTIFICATE_NO het de standaardwaarde is. Daarnaast is er een nieuw trefwoord TrustServerCertificatevoor de verbindingsreeks toegevoegd. Het accepteert yes of no waarden; no is de standaardwaarde.