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.

Diese Funktion arbeitet mit SSMS Version 17.9.1 und früher.

Konfigurieren des Transact-SQL-Debuggers

Der Transact-SQL-Debugger enthält sowohl serverseitige als auch clientseitige Komponenten. Die serverseitigen Debuggerkomponenten werden mit jeder Instanz der Datenbank-Engine von SQL Server 2005 (9.x) Service Pack 2 (SP2) oder höheren Versionen installiert. Die clientseitigen Debuggerkomponenten sind inbegriffen:

  • Wenn Sie die clientseitigen Tools von SQL Server 2008 (10.0.x) oder höhere Versionen installieren

  • Wenn Sie Microsoft Visual Studio 2010 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 Management Studio oder 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. Diese Regeln werden möglicherweise durch SQL Server -Setup erstellt. 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\MSSQL13.<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 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

Auf dem Computer, der den Datenbank-Engine -Abfrage-Editor ausführt, ist für das SQL Server-Setup oder SQL Server Data Tools -Setup möglicherweise die Windows-Firewall konfiguriert, um Remotedebugging zu ermöglichen.

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 Datenbank-Engine -Abfrage-Editor hostet. Wenn Sie Remotedebugsitzungen von sowohl SQL Server Management Studio als auch SQL Server Data Tools auf demselben Computer öffnen möchten, müssen Sie eine Programmregel für beide 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 Management Studio den vollständigen Pfad zu „ssms.exe“ ein. Standardmäßig wird „ssms.exe“ in C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\Management Studio installiert.

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

        1. Standardmäßig befindet sich devenv.exe für Visual Studio 2010 in C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE.

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

        3. Sie finden den Pfad zu „ssms.exe“ über die Verknüpfung, mit der Sie SQL Server Management Studio starten. 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 Management Studio oder 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 Abfrage-Editor-Fenster der Datenbank-Engine muss mit einer Instanz der Datenbank-Engine von SQL Server 2005 (9.x) Service Pack 2 (SP2) oder höheren Versionen 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.

Nächste Schritte