Freigeben über


Konfigurieren von Firewallregeln vor dem Ausführen des Transact-SQL-Debuggers

Gilt für: SQL Server

Die Windows Firewall-Regeln müssen so konfiguriert werden, dass das Debuggen von Transact-SQL möglich ist, wenn eine Verbindung zu einer Instanz der Datenbank-Engine besteht, die auf einem anderen Computer als der Datenbank-Engine Query Editor läuft.

Konfigurieren des Transact-SQL-Debuggers

Der Transact-SQL-Debugger enthält sowohl serverseitige als auch clientseitige Komponenten. Die serverseitigen Debugger-Komponenten werden mit jeder Instanz der SQL Server Datenbank Engine installiert. Die clientseitigen Debuggerkomponenten sind inbegriffen:

  • Wenn Sie Microsoft Visual Studio 2019 oder höhere Versionen installieren

  • Wenn Sie SQL Server Data Tools (SSDT) per Webdownload installieren

Es gibt keine Konfigurationsanforderungen für die Ausführung des Transact-SQL-Debuggers, wenn SQL Server Data Tools auf demselben Computer wie die Instanz des SQL Server-Datenbankmoduls ausgeführt wird. Um jedoch den Transact-SQL-Debugger auszuführen, wenn Sie mit einer entfernten Instanz der Datenbank-Engine verbunden sind, müssen Programm- und Portregeln in der Windows-Firewall auf beiden Computern aktiviert sein. Wenn Ihnen beim Versuch, eine Remotedebugsitzung zu öffnen, Fehler angezeigt werden, stellen Sie sicher, dass die folgenden Firewallregeln auf dem Computer definiert sind.

Verwenden Sie die Anwendung Windows-Firewall mit erweiterter Sicherheit , um die Firewallregeln zu verwalten. Öffnen Sie in sowohl Windows 7 als auch Windows Server 2008 R2Systemsteuerung, öffnen Sie Windows-Firewallund wählen Sie Erweiterte Einstellungenaus. In Windows Server 2008 R2 können Sie auch den Dienst-Manager öffnen, im linken Fensterbereich Konfiguration erweitern und Windows Firewall mit erweiterter Sicherheit ausklappen.

Achtung

Wenn Sie Regeln in der Windows-Firewall aktivieren, kann dies dazu führen, dass Ihr Computer Sicherheitsrisiken ausgesetzt ist, die von der Firewall normalerweise geblockt werden. Durch das Aktivieren von Regeln für Remotedebugging wird die Blockierung der in diesem Thema aufgeführten Ports und Programme aufgehoben.

Firewallregeln für den Server

Verwenden Sie auf dem Computer, auf dem die Instanz von Datenbank-Engineausgeführt wird, Windows-Firewall mit erweiterter Sicherheit , um die folgenden Informationen anzugeben:

  • Fügen Sie eine eingehende Programmregel für sqlservr.exe hinzu. Sie müssen eine Regel für jede Instanz besitzen, die Remotedebugsitzungen unterstützen muss.

    1. Klicken Sie im linken Bereich von Windows-Firewallmit erweiterter Sicherheit mit der rechten Maustaste auf Eingehende Regeln, und wählen Sie dann im Aktionsbereich Neue Regel aus.

    2. Wählen Sie im Dialogfeld Regeltyp die Option Programm aus, und klicken Sie anschließend auf Weiter.

    3. Wählen Sie im Dialogfeld Programm die Option Dieser Programmpfad: aus, und geben Sie den vollständigen Pfad zu sqlservr.exe für diese Instanz ein. Standardmäßig erfolgt die Installation von sqlservr.exe in C:\Program Files\Microsoft SQL Server\MSSQL16.<InstanceName>\MSSQL\Binn, wobei <InstanceName> für die Standardinstanz MSSQLSERVER lautet und für jede benannte Instanz der Instanzname verwendet wird.

    4. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen, und wählen Sie Weiter aus.

    5. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Debugsitzung mit der Instanz öffnen möchten, und wählen Sie Weiter aus.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und wählen Sie Fertig stellen aus.

    7. Klicken Sie in der Liste Eingehende Regeln mit der rechten Maustaste auf die Regel, die Sie erstellt haben, und wählen Sie dann im Aktionsbereich Eigenschaften aus.

    8. Wählen Sie die Registerkarte Protokolle und Ports aus.

    9. Wählen Sie im Feld Protokolltyp: die Option TCP aus, wählen Sie im Feld Lokaler Port: die Einstellung Dynamische RPC-Ports aus, klicken Sie auf Anwenden und dann auf OK.

  • Fügen Sie eine eingehende Programmregel für svchost.exe hinzu, um eine Distributed Component Object Model (DCOM)-Kommunikation von Remotedebuggersitzungen aus zu ermöglichen.

    1. Klicken Sie im linken Bereich von Windows-Firewallmit erweiterter Sicherheit mit der rechten Maustaste auf Eingehende Regeln, und wählen Sie dann im Aktionsbereich Neue Regel aus.

    2. Wählen Sie im Dialogfeld Regeltyp die Option Programm aus, und klicken Sie anschließend auf Weiter.

    3. Wählen Sie im Dialogfeld Programm die Option Dieser Programmpfad: aus, und geben Sie den vollständigen Pfad zu svchost.exe ein. Standardmäßig wird svchost.exe unter %systemroot%\System32\svchost.exe installiert.

    4. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen, und wählen Sie Weiter aus.

    5. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Debugsitzung mit der Instanz öffnen möchten, und wählen Sie Weiter aus.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und wählen Sie Fertig stellen aus.

    7. Klicken Sie in der Liste Eingehende Regeln mit der rechten Maustaste auf die Regel, die Sie erstellt haben, und wählen Sie dann im Aktionsbereich Eigenschaften aus.

    8. Wählen Sie die Registerkarte Protokolle und Ports aus.

    9. Wählen Sie im Feld Protokolltyp: die Option TCP aus, wählen Sie im Feld Lokaler Port: die Einstellung RPC-Endpunktzuordnung aus, klicken Sie auf Anwenden und dann auf OK.

  • Wenn die Domänenrichtlinie eine Netzwerkkommunikation über IPSec erfordert, müssen Sie auch eingehende Regeln für das Öffnen von UDP-Port 4500 und den UDP-Port 500 hinzufügen.

Firewallregeln für den Client

Konfigurieren Sie auf dem Computer, auf dem der Datenbank-Engine-Abfrage-Editor ausgeführt wird, die Windows-Firewall so, dass sie Remote-Debugging zulässt.

Wenn Ihnen beim Versuch, eine Remotedebugsitzung zu öffnen, Fehler angezeigt werden, können Sie die Programm- und Portausnahmen manuell mit Windows-Firewall mit erweiterter Sicherheit konfigurieren, um Firewallregeln zu konfigurieren:

  • Fügen Sie einen Programmeintrag für svchost hinzu:

    1. Klicken Sie im linken Bereich von Windows-Firewallmit erweiterter Sicherheit mit der rechten Maustaste auf Eingehende Regeln, und wählen Sie dann im Aktionsbereich Neue Regel aus.

    2. Wählen Sie im Dialogfeld Regeltyp die Option Programm aus, und klicken Sie anschließend auf Weiter.

    3. Wählen Sie im Dialogfeld Programm die Option Dieser Programmpfad: aus, und geben Sie den vollständigen Pfad zu svchost.exe ein. Standardmäßig wird svchost.exe unter %systemroot%\System32\svchost.exe installiert.

    4. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen, und wählen Sie Weiter aus.

    5. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Debugsitzung mit der Instanz öffnen möchten, und wählen Sie Weiter aus.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und wählen Sie Fertig stellen aus.

    7. Klicken Sie in der Liste Eingehende Regeln mit der rechten Maustaste auf die Regel, die Sie erstellt haben, und wählen Sie dann im Aktionsbereich Eigenschaften aus.

    8. Wählen Sie die Registerkarte Protokolle und Ports aus.

    9. Wählen Sie im Feld Protokolltyp: die Option TCP aus, wählen Sie im Feld Lokaler Port: die Einstellung RPC-Endpunktzuordnung aus, klicken Sie auf Anwenden und dann auf OK.

  • Fügen Sie einen Programmeintrag für die Anwendung hinzu, die den SQL Server Data Tools Datenbank-Engine -Abfrage-Editor hostet. Wenn Sie Remote-Debugsitzung von mehreren Installationen von SQL Server Data Tools auf demselben Computer öffnen müssen, müssen Sie für beide eine Programmregel hinzufügen:

    1. Klicken Sie im linken Bereich von Windows-Firewallmit erweiterter Sicherheit mit der rechten Maustaste auf Eingehende Regeln, und wählen Sie dann im Aktionsbereich Neue Regel aus.

    2. Wählen Sie im Dialogfeld Regeltyp die Option Programm aus, und klicken Sie anschließend auf Weiter.

    3. Wählen Sie im Dialogfeld ProgrammDieser Programmpfad: aus, und geben Sie einen dieser drei Werte ein.

      • Geben Sie für SQL Server Data Tools den vollständigen Pfad zu devenv.exe ein:

        1. Bei Visual Studio 2022 befindet sich devenv.exe standardmäßig in C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE.

        2. Bei Visual Studio 2019 befindet sich devenv.exe standardmäßig in C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE.

        3. Sie finden den Pfad zu devenv.exe anhand der Verknüpfung, die Sie zum Starten von SQL Server Data Tools verwenden. Klicken Sie mit der rechten Maustaste auf die Verknüpfung, und wählen Sie Eigenschaften aus. Die ausführbare Datei und der Pfad sind im Feld Ziel aufgeführt.

    4. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen, und wählen Sie Weiter aus.

    5. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Debugsitzung mit der Instanz öffnen möchten, und wählen Sie Weiter aus.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und wählen Sie Fertig stellen aus.

    7. Klicken Sie in der Liste Eingehende Regeln mit der rechten Maustaste auf die Regel, die Sie erstellt haben, und wählen Sie dann im Aktionsbereich Eigenschaften aus.

    8. Wählen Sie die Registerkarte Protokolle und Ports aus.

    9. Wählen Sie im Feld Protokolltyp: die Option TCP aus, wählen Sie im Feld Lokaler Port: die Einstellung Dynamische RPC-Ports aus, klicken Sie auf Anwenden und dann auf OK.

Anforderungen zum Starten des Debuggers

Alle Versuche, den Transact-SQL-Debugger zu starten, müssen außerdem die folgenden Voraussetzungen erfüllen:

  • SQL Server Data Tools muss unter einem Windows-Konto ausgeführt werden, das Mitglied der festen Serverrolle sysadmin ist.

  • Das Abfrage-Editor-Fenster der Datenbank-Engine muss entweder per Windows-Authentifizierung oder mithilfe einer Anmeldung mit SQL Server-Authentifizierung verbunden werden, die Mitglied der festen Serverrolle sysadmin ist.

  • Das Datenbank-Engine -Abfrage-Editor-Fenster muss mit einer Instanz des SQL Server-Datenbank-Engine verbunden sein. Sie können den Debugger nicht ausführen, wenn das Abfrage-Editor-Fenster mit einer Instanz verbunden ist, die sich im Einzelbenutzermodus befindet.

  • Der Server muss über RPC mit dem Client kommunizieren. Das Konto, mit dem der SQL Server-Dienst ausgeführt wird, muss über Authentifizierungsberechtigungen für den Client verfügen.