Freigeben über


Verwenden der Verschlüsselung ohne Überprüfung

SQL Server verschlüsselt stets Netzwerkpakete, die mit der Anmeldung verbunden sind. Wenn beim Starten kein Zertifikat auf dem Server bereitgestellt wurde, generiert SQL Server ein selbstsigniertes Zertifikat, das zum Verschlüsseln von Anmeldepaketen verwendet wird.

Anwendungen erfordern möglicherweise auch die Verschlüsselung des gesamten Netzwerkdatenverkehrs mit Verbindungszeichenfolgenschlüsselwörtern oder Verbindungseigenschaften. Die Schlüsselwörter sind "Verschlüsseln" für ODBC und OLE DB bei Verwendung einer Anbieterzeichenfolge mit IDbInitialize::Initialize oder "Use Encryption for Data" für ADO und OLE DB bei Verwendung einer Initialisierungszeichenfolge mit IDataInitialize. Dies kann auch von SQL Server Configuration Manager mit der Option " Protokollverschlüsselung erzwingen " konfiguriert werden. Standardmäßig muss für die Verschlüsselung aller Netzwerkdatenverkehre für eine Verbindung ein Zertifikat auf dem Server bereitgestellt werden.

Informationen zu Verbindungszeichenfolgenstichwörtern finden Sie unter Verwenden von Verbindungszeichenfolgenstichwörtern mit SQL Server Native Client.

Um die Verschlüsselung zu aktivieren, die verwendet werden soll, wenn ein Zertifikat nicht auf dem Server bereitgestellt wurde, kann SQL Server Configuration Manager verwendet werden, um die Optionen für die Force Protocol Encryption und die Trust Server Certificate-Optionen festzulegen. In diesem Fall verwendet die Verschlüsselung ein selbstsigniertes Serverzertifikat ohne Überprüfung, wenn kein überprüfbares Zertifikat auf dem Server bereitgestellt wurde.

Anwendungen können auch das Schlüsselwort "TrustServerCertificate" oder das zugehörige Verbindungsattribut verwenden, um sicherzustellen, dass die Verschlüsselung stattfindet. Anwendungseinstellungen verringern niemals die Vom SQL Server-Clientkonfigurations-Manager festgelegte Sicherheitsstufe, können sie jedoch stärken. Wenn die Force Protocol Encryption beispielsweise nicht für den Client festgelegt ist, kann eine Anwendung die Verschlüsselung selbst anfordern. Um die Verschlüsselung zu gewährleisten, auch wenn kein Serverzertifikat bereitgestellt wurde, kann eine Anwendung Verschlüsselung und "TrustServerCertificate" anfordern. Wenn "TrustServerCertificate" in der Clientkonfiguration jedoch nicht aktiviert ist, ist weiterhin ein bereitgestelltes Serverzertifikat erforderlich. In der folgenden Tabelle werden alle Fälle beschrieben:

Protokollverschlüsselung erzwingen - Clienteinstellung Dem Serverzertifikat vertrauen Verbindungszeichenfolge-/Verbindungsattribut 'Verschlüsseln/Verschlüsselung für Daten verwenden' Verbindungszeichenfolge/Verbindungsattribut 'Dem Serverzertifikat vertrauen' Ergebnis
Nein Nicht verfügbar Nein (Standard) Wird ignoriert. Keine Verschlüsselung.
Nein Nicht verfügbar Ja Nein (Standard) Verschlüsselung tritt nur auf, wenn ein überprüfbares Serverzertifikat vorhanden ist, andernfalls schlägt der Verbindungsversuch fehl.
Nein Nicht verfügbar Ja Ja Verschlüsselung wird immer durchgeführt, es wird jedoch z. B. ein selbstsigniertes Serverzertifikat verwendet.
Ja Nein Wird ignoriert. Wird ignoriert. Verschlüsselung tritt nur auf, wenn ein überprüfbares Serverzertifikat vorhanden ist, andernfalls schlägt der Verbindungsversuch fehl.
Ja Ja Nein (Standard) Wird ignoriert. Verschlüsselung wird immer durchgeführt, es wird jedoch z. B. ein selbstsigniertes Serverzertifikat verwendet.
Ja Ja Ja Nein (Standard) Verschlüsselung tritt nur auf, wenn ein überprüfbares Serverzertifikat vorhanden ist, andernfalls schlägt der Verbindungsversuch fehl.
Ja Ja Ja Ja Verschlüsselung erfolgt immer, kann aber ein selbstsigniertes Serverzertifikat verwenden.

SQL Server Native Client OLE DB-Anbieter

Der OLE DB-Anbieter von SQL Server Native Client unterstützt die Verschlüsselung ohne Überprüfung durch das Hinzufügen der SSPROP_INIT_TRUST_SERVER_CERTIFICATE-Eigenschaft zur Datenquelleninitialisierung, die im DBPROPSET_SQLSERVERDBINIT-Eigenschaftensatz implementiert wird. Darüber hinaus wurde ein neues Verbindungszeichenfolgen-Schlüsselwort "TrustServerCertificate" hinzugefügt. Sie akzeptiert Ja- oder Nein-Werte; nein ist die Standardeinstellung. Bei der Verwendung von Dienstkomponenten akzeptiert sie wahr oder falsch Werte; false ist der Standardwert.

Weitere Informationen zu Verbesserungen am DBPROPSET_SQLSERVERDBINIT Eigenschaftensatz finden Sie unter Initialisierungs- und Autorisierungseigenschaften.

ODBC-Treiber für SQL Server Native Client

Der ODBC-Treiber für SQL Server Native Client unterstützt die Verschlüsselung ohne Überprüfung durch Ergänzungen der Funktionen SQLSetConnectAttr und SQLGetConnectAttr . SQL_COPT_SS_TRUST_SERVER_CERTIFICATE wurde hinzugefügt, um entweder SQL_TRUST_SERVER_CERTIFICATE_YES oder SQL_TRUST_SERVER_CERTIFICATE_NO zu akzeptieren, wobei SQL_TRUST_SERVER_CERTIFICATE_NO die Standardeinstellung ist. Darüber hinaus wurde ein neues Verbindungszeichenfolgen-Schlüsselwort "TrustServerCertificate" hinzugefügt. Sie akzeptiert Ja- oder Nein-Werte; "nein" ist die Standardeinstellung.

Siehe auch

SQL Server Native Client-Funktionen