Herstellen einer Verbindung mit SQL Server mit dem Verschlüsselungstyp „Strict“

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

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.

  1. Suchen Sie in Windows nach der App für ODBC-Datenquellen.

    Screenshot der O D B C-Datenquellen-App.

  2. Vergewissern Sie sich auf der Registerkarte Treiber des ODBC-Datenquellenadministrators, dass Sie über den neuesten ODBC-Treiber verfügen.

    Screenshot der verfügbaren Treiber.

  3. 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.

  4. 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.

    Screenshot des Erstellens einer Datenquelle mit dem O D B C-Treiber.

  5. 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.

    Screenshot des strengen Verschlüsselungstyps.

  6. 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 strict mit SQL Server für diesen Test erzwungen werden.

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.

  1. 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 txt in udl ändern. Geben Sie der Datei einen beliebigen Namen.

    Hinweis

    Sie müssen den Namen der Dateierweiterung sehen können, um die Dateierweiterung von txt in udl zu ändern. Wenn die Erweiterung nicht angezeigt wird, können Sie die Anzeige der Erweiterung aktivieren, indem Sie dieDateinamenerweiterungen der >>>.

  2. Ö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.

    Screenshot des Bildschirms „U D L-Anbieter“.

  3. 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.

    Screenshot des U D L-Verbindungsbildschirms.

  4. 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.

    Screenshot des erweiterten Bildschirms „U D L“.

  5. Klicken Sie auf Verbindung testen, um die Verbindung mit der Verbindungsverschlüsselung strict zu testen.

    Screenshot des U D L-Verbindungsbildschirms und des Tests der Verbindung.

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:

Screenshot des Dialogfelds

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:

  1. 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.
  2. Testen Sie Verbindungen mit jedem SQL Server-Replikat mithilfe einer der in diesem Artikel erwähnten Methoden, die verschlüsselung erzwingen.
  3. CREATE AVAILABILITY GROUP mit der Eigenschaft Encrypt, die in der Klausel CLUSTER_CONNECTION_OPTIONS für die Verfügbarkeitsgruppe auf Strict festgelegt ist. Dadurch wird sichergestellt, dass alle Verbindungen mit der Verfügbarkeitsgruppe den angegebenen Verschlüsselungstyp verwenden.
  4. 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 ClusterConnectionOptions mö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.
  5. (Optional) Sie können die Verschlüsselung weiter erzwingen, indem Sie die Option " Strenge Verschlüsselung erzwingen " Yes in 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 Always On-Failoverclusterinstanz mithilfe des - oder -Verschlüsselungstyps für Verbindungen verschlüsseln. Gehen Sie dazu wie folgt vor:

  1. 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.
  2. Testen Sie Verbindungen mit der Failoverclusterinstanz mithilfe einer der in diesem Artikel erwähnten Methoden, die Verschlüsselung erzwingen.
  3. ALTER SERVER CONFIGURATION mit der CLUSTER_CONNECTION_OPTIONS Klausel zum Festlegen der Encrypt Eigenschaft auf Mandatory oder Strict. Dadurch wird sichergestellt, dass alle Verbindungen mit der Failoverclusterinstanz den angegebenen Verschlüsselungstyp verwenden.
  4. Ü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 ClusterConnectionOptions nicht 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.
  5. (Optional) Sie können die Verschlüsselung weiter erzwingen, indem Sie die Option " Strenge Verschlüsselung erzwingen " Yes in 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\ForceEncryption
  • HKEY_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:

  1. Öffnen Sie SQL Server-Konfigurations-Manager.

  2. Erweitern Sie im linken Bereich die SQL Server-Netzwerkkonfiguration, und wählen Sie "Protokolle für [InstanceName]" aus.

  3. Klicken Sie mit der rechten Maustaste auf TCP/IP, und wählen Sie "Eigenschaften" aus.

  4. 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:

    Screenshot der Option

  5. 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.