Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2022 (16.x) und höhere Versionen
Die Nutzung der Verbindungsverschlüsselung vom Typ „Strict“ erzwingt bewährte Sicherheitsmethoden und ermöglicht die Verwaltung des SQL Server-Datenverkehrs mit Standardnetzwerkappliances. Die strikte Verschlüsselung verwendet Tabular Data Stream (TDS) 8.0, das die TDS-Sitzung zur Ende-zu-Ende-Verschlüsselung in Transport Layer Security (TLS) kapselt.
In diesem Artikel erfahren Sie, wie Sie mithilfe des strengen Verbindungstyps eine Verbindung mit SQL Server 2022 (16.x) und höheren Versionen herstellen.
Voraussetzungen
- SQL Server 2022 (16.x) oder höher
- ODBC- oder OLE DB-Treiber für SQL Server
- ODBC-Treiber für SQL Server: ab Version 18.1.2.1
- OLE DB-Treiber für SQL Server: ab Version 19.2.0
- Erstellen und installieren Sie ein TLS-Zertifikat (Transport Layer Security) für SQL Server. Weitere Informationen finden Sie unter Aktivieren von verschlüsselten Verbindungen mit der Datenbank-Engine.
Herstellen einer Verbindung mit SQL Server mithilfe einer .NET-Anwendung
Informationen zum Herstellen einer Verbindung mit SQL Server mithilfe des Verschlüsselungstyps strict und zum ordnungsgemäßen Erstellen der Verbindungszeichenfolge finden Sie unter Verbindungszeichenfolgensyntax. Weitere Informationen zu den neuen Eigenschaften für Verbindungszeichenfolgen finden Sie unter Zusätzliche Änderungen an den Eigenschaften für die Verschlüsselung von Verbindungszeichenfolgen.
Herstellen einer Verbindung mithilfe eines ODBC-DSN
Sie können eine mit dem Verschlüsselungstyp Strict verschlüsselte Verbindung mit SQL Server mit einem ODBC-DSN testen.
Suchen Sie in Windows nach der App für ODBC-Datenquellen.
Vergewissern Sie sich auf der Registerkarte Treiber des ODBC-Datenquellenadministrators, dass Sie über den neuesten ODBC-Treiber verfügen.
Klicken Sie auf der Registerkarte System-DSN auf Hinzufügen, um einen DSN zu erstellen. Wählen Sie anschließend den ODBC-Treiber 18 für SQL Server aus. Wählen Sie Fertig stellen aus. Wir werden dies nutzen, um unsere Verbindung zu testen.
Geben Sie im Fenster Neue Datenquelle für SQL Server erstellen einen Namen für diese Datenquelle an, und fügen Sie für Server den Servernamen Ihrer SQL Server 2022-Instanz (16.x) hinzu. Wählen Sie Weiter aus.
Verwenden Sie für alle Einstellungen die Standardwerte, bis Sie zum Bildschirm mit dem Feld Verbindungsverschlüsselung gelangen. Wählen Sie die Option Strict aus. Wenn der von Ihnen eingegebene Servername nicht dem Namen im Zertifikat entspricht oder wenn stattdessen die IP-Adresse verwendet wird, geben Sie für Hostname im Zertifikat den in Ihrem Zertifikat verwendeten Namen an. Wählen Sie Fertig stellen aus.
Klicken Sie im Dialogfeld ODBC Microsoft SQL Server-Setup auf die Schaltfläche Datenquelle testen, um die Verbindung zu testen. Dadurch sollte die Verbindung vom Typ
strictmit SQL Server für diesen Test erzwungen werden.
Herstellen einer Verbindung mithilfe von Universal Data Link
Sie können die Verbindung mit SQL Server mit dem Verschlüsselungstyp strict auch mithilfe des OLE DB-Treibers mit Universal Data Link (UDL) testen.
Wenn Sie eine UDL-Datei zum Testen der Verbindung erstellen möchten, klicken Sie mit der rechten Maustaste auf den Desktop, und wählen Sie Neu>Textdokument aus. Sie müssen die Erweiterung von
txtinudländern. Geben Sie der Datei einen beliebigen Namen.Hinweis
Sie müssen den Namen der Dateierweiterung sehen können, um die Dateierweiterung von
txtinudlzu ändern. Wenn die Erweiterung nicht angezeigt wird, können Sie die Anzeige der Erweiterung aktivieren, indem Sie dieDateinamenerweiterungen der >>>.Öffnen Sie die von Ihnen erstellte UDL-Datei. Wechseln Sie zur Registerkarte Anbieter, und wählen Sie den Microsoft OLE DB-Treiber 19 für SQL Server aus. Wählen Sie Weiter>> aus.
Geben Sie auf der Registerkarte Verbindung den Servernamen Ihrer SQL Server-Instanz ein, und wählen Sie die Authentifizierungsmethode aus, die Sie für die Anmeldung bei SQL Server verwenden.
Wählen Sie auf der Registerkarte Erweitert für Verbindungsverschlüsselung die Option Strict aus. Wenn der von Ihnen eingegebene Servername nicht dem Namen im Zertifikat entspricht oder wenn stattdessen die IP-Adresse verwendet wird, geben Sie für Hostname im Zertifikat den in Ihrem Zertifikat verwendeten Namen an. Wechseln Sie zurück zur Registerkarte Verbindung, wenn Sie fertig sind.
Klicken Sie auf Verbindung testen, um die Verbindung mit der Verbindungsverschlüsselung
strictzu testen.
Herstellen einer Verbindung mit SSMS
Ab Version 20 können Sie strenge Verschlüsselung in SQL Server Management Studio (SSMS) auf der Registerkarte " Anmeldungen " im Dialogfeld " Verbindung mit Server herstellen" erzwingen:
Verbindung zu einer Always On-Verfügbarkeitsgruppe herstellen
Ab SQL Server 2025 (17.x) können Sie die Kommunikation zwischen dem Windows Server-Failovercluster und einem Always On-Verfügbarkeitsgruppenreplikat entweder mithilfe des Verschlüsselungstyps Strict oder Mandatory der Verbindungsverschlüsselung verschlüsseln. Ihre Verfügbarkeitsgruppe kann verschlüsselung nur erzwingen, wenn sie auf einem Windows Server-Failovercluster basiert. Andere Arten von Verfügbarkeitsgruppen unterstützen keine strenge Verschlüsselung.
Hinweis
Die Verschlüsselung für Datenbankspiegelungsendpunkte wird separat konfiguriert, und TLS wird nicht unterstützt. Weitere Informationen finden Sie unter Transportsicherheit in Verfügbarkeitsgruppen und Datenbankspiegelung.
Die Schritte unterscheiden sich, je nachdem, ob Ihre Verfügbarkeit bereits besteht oder nicht.
Führen Sie die folgenden Schritte aus, um eine strenge Verschlüsselung für eine neue Verfügbarkeitsgruppe zu erzwingen:
- Falls noch nicht geschehen, importieren Sie das TLS-Zertifikat gemäß den Zertifikatanforderungen in jedes Replikat der Verfügbarkeitsgruppe. Starten Sie jede SQL Server-Instanz nach dem Importieren des Zertifikats neu.
- Testen Sie Verbindungen mit jedem SQL Server-Replikat mithilfe einer der in diesem Artikel erwähnten Methoden, die verschlüsselung erzwingen.
-
CREATE AVAILABILITY GROUP mit der Eigenschaft
Encrypt, die in der KlauselCLUSTER_CONNECTION_OPTIONSfür die Verfügbarkeitsgruppe aufStrictfestgelegt ist. Dadurch wird sichergestellt, dass alle Verbindungen mit der Verfügbarkeitsgruppe den angegebenen Verschlüsselungstyp verwenden. - Wenn die Verfügbarkeitsgruppe derzeit online ist, verschieben Sie sie auf ein sekundäres Replikat, um die neuen Verschlüsselungseinstellungen auf die Verfügbarkeitsgruppe anzuwenden. Wenn die Verfügbarkeitsgruppe nicht online kommt, ist
ClusterConnectionOptionsmöglicherweise nicht richtig festgelegt. Überprüfen Sie die cluster.log auf ODBC-Fehler im Zusammenhang mit dem Cluster, bei dem keine Verbindung mit dem SQL Server-Replikat hergestellt werden kann. Optional können Sie die Verfügbarkeitsgruppe zurück zum ursprünglichen primären Replikat zurückschlagen, nachdem das neue sekundäre Replikat online und mit der Verfügbarkeitsgruppe verbunden ist. - (Optional) Sie können die Verschlüsselung weiter erzwingen, indem Sie die Option " Strenge Verschlüsselung erzwingen "
Yesin den SQL Server-Konfigurations-Manager-Eigenschaften für das Verbindungsprotokoll für jedes Replikat festlegen. Diese Einstellung stellt sicher, dass alle Verbindungen mit den Verfügbarkeitsgruppenreplikaten strenge Verschlüsselung verwenden. Starten Sie jedes SQL Server-Replikat neu, nachdem Sie diese Einstellung geändert haben.
Verbindung zu einer Failoverclusterinstanz herstellen
Ab SQL Server 2025 (17.x) können Sie die Kommunikation zwischen Ihrem Windows Server-Failovercluster und einer
- Falls noch nicht geschehen, importieren Sie das TLS-Zertifikat gemäß den Zertifikatanforderungen in jeden Knoten des Failoverclusters. Starten Sie die SQL Server-Instanz nach dem Importieren des Zertifikats neu.
- Testen Sie Verbindungen mit der Failoverclusterinstanz mithilfe einer der in diesem Artikel erwähnten Methoden, die Verschlüsselung erzwingen.
-
ALTER SERVER CONFIGURATION mit der
CLUSTER_CONNECTION_OPTIONSKlausel zum Festlegen derEncryptEigenschaft aufMandatoryoderStrict. Dadurch wird sichergestellt, dass alle Verbindungen mit der Failoverclusterinstanz den angegebenen Verschlüsselungstyp verwenden. - Überführen Sie die Instanz zu einem sekundären Knoten, um die neuen Verschlüsselungseinstellungen auf die Failover-Cluster-Instanz anzuwenden. Wenn die Failoverclusterinstanz nicht online geschaltet werden kann, liegt das möglicherweise daran, dass
ClusterConnectionOptionsnicht korrekt festgelegt ist. Überprüfen Sie die cluster.log auf ODBC-Fehler im Zusammenhang mit dem Cluster, bei der keine Verbindung mit der SQL Server-Instanz hergestellt werden kann. Optionalerweise können Sie die Instanz auf den ursprünglichen primären Knoten zurückverlagern, wenn der neue sekundäre Knoten online ist und mit der Failover-Clusterinstanz verbunden ist. - (Optional) Sie können die Verschlüsselung weiter erzwingen, indem Sie die Option " Strenge Verschlüsselung erzwingen "
Yesin den SQL Server-Konfigurations-Manager-Eigenschaften für das Verbindungsprotokoll für jeden Knoten im Cluster festlegen. Diese Einstellung stellt sicher, dass alle Verbindungen mit der Failoverclusterinstanz strenge Verschlüsselung verwenden. Nehmen Sie diese Änderung auf dem sekundären Knoten vor, übertragen Sie die Instanz darauf, und nehmen Sie dann die Änderung auf dem primären Knoten vor.
SQL Server-Agent Verbindungsverschlüsselung
Ab SQL Server 2025 (17.x) verwendet SQL Server-Agent Microsoft ODBC-Treiber 18 für SQL Server, der TDS 8.0 und TLS 1.3 unterstützt. SQL Server-Agent passt die Verbindungsverschlüsselung automatisch an die Konfiguration der SQL Server Instanz an.
Wie SQL Server-Agent die Verschlüsselung bestimmt
Wenn SQL Server-Agent gestartet wird, fragt sie die folgenden Registrierungsschlüssel auf dem lokalen Computer ab, um die für SQL Server konfigurierte Verschlüsselungsebene zu ermitteln:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceEncryptionHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceStrict-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\SubjectAlternativeName(neu in SQL Server 2025 (17.x))
Basierend auf diesen Werten wählt SQL Server-Agent den Verbindungsmodus aus:
- Wenn Strikte Verschlüsselung erzwingen aktiviert ist, stellt SQL Server-Agent über
strict(TDS 8.0) eine Verbindung her. - Wenn die Erzwingungsverschlüsselung aktiviert ist, SQL Server-Agent eine Verbindung mit
mandatory(TDS 7.x) herstellt. - Wenn keine der beiden Optionen aktiviert ist, stellt SQL Server-Agent über
optional(TDS 7.x) eine Verbindung her.
Lokale T-SQL-Auftragsschritte erben dieselbe Verschlüsselungskonfiguration wie der SQL Server-Agent Dienst. Wenn SQL Server-Agent eine Verbindung mit strictherstellen, verwenden T-SQL-Aufträge, die lokal auf dem Server ausgeführt werden, dieselbe Option.
Important
TLS 1.3 funktioniert nur mit strenger Verschlüsselung. Wenn auf Betriebssystemebene für die SQL-Server-Instanz nur TLS 1.3 aktiviert ist, aber nur Force Encryption festgelegt ist (nicht Force Strict Encryption), kann der SQL Server-Agent nicht gestartet werden, da die Modi mandatory und optional TDS 7.x erfordern, das nicht mit TLS 1.3 kompatibel ist.
TLS- und Verschlüsselungskonfigurationsmatrix
| TLS-Version aktiviert | Konfigurationseinstellung | SQL Server-Agent Ergebnis | Notes |
|---|---|---|---|
| Nur TLS 1.3 | Strenge Verschlüsselung erzwingen | Verbindung erfolgreich hergestellt | TDS 8.0 verwendet strenge Verschlüsselung |
| Nur TLS 1.3 | Erzwingen der Verschlüsselung | Verbindung kann nicht hergestellt werden | TLS 1.3 erfordert strikte |
| Nur TLS 1.3 | Nichts | Verbindung kann nicht hergestellt werden | TLS 1.3 erfordert strenge Verschlüsselung |
| Nur TLS 1.2 | Strenge Verschlüsselung erzwingen | Verbindung erfolgreich hergestellt | TDS 8.0 kann TLS 1.2 verwenden |
| Nur TLS 1.2 | Erzwingen der Verschlüsselung | Verbindung erfolgreich hergestellt | TDS 7.x mit obligatorischer |
| Nur TLS 1.2 | Nichts | Verbindung erfolgreich hergestellt | TDS 7.x mit optionaler Option |
| TLS 1.2 und TLS 1.3 | Strenge Verschlüsselung erzwingen | Verbindung erfolgreich hergestellt | TDS 8.0 verwendet strenge Verschlüsselung |
| TLS 1.2 und TLS 1.3 | Erzwingen der Verschlüsselung | Verbindung erfolgreich hergestellt | TDS 7.x mit obligatorischer |
| TLS 1.2 und TLS 1.3 | Nichts | Verbindung erfolgreich hergestellt | TDS 7.x mit optionaler Option |
Überprüfen der ausgehandelten Verschlüsselung von SQL Server-Agent
Nachdem SQL Server-Agent eine Verbindung hergestellt hat, führen Sie die folgende Abfrage aus, um den Verschlüsselungsmodus zu bestätigen:
SELECT s.session_id, c.encrypt_option, s.program_name, s.client_interface_name, s.nt_user_name
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE s.program_name LIKE 'SQLAgent%';
Die encrypt_option Spalte gibt zurückTRUE, wenn SQL Server-Agent mit verschlüsselung verbunden ist.
Eine Übersicht über SQL Server-Agent selbst finden Sie unter SQL Server-Agent.
Erzwingen der strengen Verschlüsselung mit SQL Server-Konfigurations-Manager
Sie können strenge Verschlüsselung mit sql Server Configuration Manager ab SQL Server 2022 (16.x) erzwingen. Führen Sie dazu die folgenden Schritte aus:
Öffnen Sie SQL Server-Konfigurations-Manager.
Erweitern Sie im linken Bereich die SQL Server-Netzwerkkonfiguration, und wählen Sie "Protokolle für [InstanceName]" aus.
Klicken Sie mit der rechten Maustaste auf TCP/IP, und wählen Sie "Eigenschaften" aus.
Wechseln Sie im Dialogfeld "TCP/IP-Eigenschaften " zur Registerkarte " Flags ", und wählen Sie dann "Ja " für die Option " Strenge Verschlüsselung erzwingen " aus:
Starten Sie die SQL Server-Instanz während eines Wartungsfensters neu, um die Änderungen anzuwenden.
Hinweise
Wird SSL certificate validation failed angezeigt, überprüfen Sie Folgendes:
- Das Serverzertifikat muss für den Computer gültig sein, den Sie für den Test verwenden.
- Mindestens eine der folgenden Optionen muss zutreffen:
- Der angegebene SQL Server-Name stimmt mit dem Zertifizierungsstellennamen oder einem der DNS-Namen im Zertifikat überein.
- Die
HostNameInCertificate-Eigenschaft der Verbindungszeichenfolge stimmt mit dem Zertifizierungsstellennamen oder einem der DNS-Namen im Zertifikat überein.