Konfigurieren des Transact-SQL-Debuggers

Sie müssen Windows-Firewall-Regeln so konfigurieren, dass das Debuggen von Transact-SQL aktiviert ist, wenn eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) hergestellt wird, die auf einem anderen Computer als der Database Engine (Datenbankmodul)-Abfrage-Editor ausgeführt wird.

Konfigurieren des Transact-SQL-Debuggers

Der Transact-SQL-Debugger umfasst sowohl serverseitige als auch clientseitige Komponenten. Die serverseitigen Debuggerkomponenten werden mit jeder Instanz des Datenbankmoduls von SQL Server 2005 Service Pack 2 (SP2) oder höher installiert. Die clientseitigen Debuggerkomponenten sind inbegriffen:

  • Wenn Sie die clientseitigen Tools von SQL Server 2008 oder höher installieren.

  • Wenn Sie Microsoft Visual Studio 2010 oder höher installieren.

  • Wenn Sie SQL Server-Datentools (SSDT) vom Webdownload installieren.

Es gibt keine Konfigurationsvoraussetzungen für die Ausführung des Transact-SQL-Debuggers, wenn SQL Server Management Studio oder SQL Server-Datentools auf demselben Computer wie die Instanz von SQL Server Database Engine (Datenbankmodul) ausgeführt wird. Um jedoch den Transact-SQL-Debugger auszuführen, wenn eine Verbindung mit einer Remoteinstanz von Database Engine (Datenbankmodul) besteht, müssen auf beiden Computern in der Windows-Firewall Programm- und Portausnahmen 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 R2 Systemsteuerung, öffnen Sie Windows-Firewall und wählen Sie Erweiterte Einstellungen aus. In Windows Server 2008 R2 können Sie auch Dienst-Manager öffnen, im linken Bereich Konfiguration sowie Windows-Firewall mit erweiterter Sicherheit erweitern.

VorsichtshinweisVorsicht

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 Database Engine (Datenbankmodul) ausgefü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-Firewall mit 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 wird "sqlservr.exe" im Verzeichnis "C:\Programme\Microsoft SQL Server\MSSQL11InstanceName\MSSQL\Binn" installiert, wobei InstanceName für die Standardinstanz und der Instanzname für eine beliebige benannte Instanz MSSQLSERVER lautet.

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

    5. Wählen Sie im Dialogfeld Profil beliebige Profile aus, die die Verbindungsumgebung des Computers beschreiben, wenn Sie eine Debugsitzung für die Instanz öffnen möchten, und klicken Sie auf Weiter.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für die Regel ein und klicken Sie auf Fertig stellen.

    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 TCP im Feld Protokolltyp: aus, wählen Sie Dynamische RPC-Ports im Feld Lokaler Port: aus, klicken Sie auf Anwenden und dann auf OK.

  • Fügen Sie eine eingehende Programmregel für svchost.exe hinzu, um DCOM-Kommunikation von Remotedebuggersitzungen zu ermöglichen.

    1. Klicken Sie im linken Bereich von Windows-Firewall mit 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 Dieser Programmpfad: aus, und geben Sie den vollständigen Pfad zu svchost.exe ein. Standardmäßig ist svchost.exe in %systemroot%\System32\svchost.exe. installiert.

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

    5. Wählen Sie im Dialogfeld Profil beliebige Profile aus, die die Verbindungsumgebung des Computers beschreiben, wenn Sie eine Debugsitzung für die Instanz öffnen möchten, und klicken Sie auf Weiter.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für die Regel ein und klicken Sie auf Fertig stellen.

    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 TCP im Feld Protokolltyp: aus, wählen Sie RPC-Endpunktzuordnung im Feld Lokaler Port: 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 Database Engine (Datenbankmodul)-Abfrage-Editor ausführt, ist für das SQL Server-Setup oder SQL Server-Datentools-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-Firewall mit 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 Dieser Programmpfad: aus, und geben Sie den vollständigen Pfad zu svchost.exe ein. Standardmäßig ist svchost.exe in %systemroot%\System32\svchost.exe. installiert.

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

    5. Wählen Sie im Dialogfeld Profil beliebige Profile aus, die die Verbindungsumgebung des Computers beschreiben, wenn Sie eine Debugsitzung für die Instanz öffnen möchten, und klicken Sie auf Weiter.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für die Regel ein und klicken Sie auf Fertig stellen.

    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 TCP im Feld Protokolltyp: aus, wählen Sie RPC-Endpunktzuordnung im Feld Lokaler Port: aus, klicken Sie auf Anwenden und dann auf OK.

  • Fügen Sie einen Programmeintrag für die Anwendung hinzu, die den Database Engine (Datenbankmodul)-Abfrage-Editor hostet. Wenn Sie Remotedebugsitzungen von sowohl SQL Server Management Studio als auch SQL Server-Datentools auf dem gleichen Computer öffnen müssen, müssen Sie eine Programmregel für beide hinzufügen:

    1. Klicken Sie im linken Bereich von Windows-Firewall mit 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 Dieser 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 unter C:\Programme (x86)\Microsoft SQL Server\110\Tools\Binn\Management Studio installiert.

      • Geben Sie für SQL Server-Datentools den vollständigen Pfad zu devenv.exe ein.

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

        2. Standardmäßig befindet sich der devenv.exe für Visual Studio 2012 unter C:\Programme (x86)\Microsoft Visual Studio 11.0\Common7\IDE

        3. Sie können den Pfad zu ssms.exe über die Verknüpfung suchen, mit der Sie SQL Server Management Studio starten. Sie können den Pfad zu devenv.exe über die Verknüpfung suchen, mit der Sie SQL Server-Datentools starten. 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 aus, und klicken Sie auf Weiter.

    5. Wählen Sie im Dialogfeld Profil beliebige Profile aus, die die Verbindungsumgebung des Computers beschreiben, wenn Sie eine Debugsitzung für die Instanz öffnen möchten, und klicken Sie auf Weiter.

    6. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für die Regel ein und klicken Sie auf Fertig stellen.

    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 TCP im Feld Protokolltyp: aus, wählen Sie Dynamische RPC-Ports im Feld Lokaler Port: aus, klicken Sie auf Anwenden und dann auf OK.

Anforderungen zum Starten des Debuggers

Beim Starten des Transact-SQL-Debuggers müssen außerdem immer die folgenden Anforderungen erfüllt sein:

  • SQL Server Management Studio oder SQL Server-Datentools muss unter einem Windows-Konto ausgeführt werden, das Mitglied der festen Serverrolle sysadmin ist.

  • Das Database Engine (Datenbankmodul)-Abfrage-Editor-Fenster muss mithilfe eines Anmeldenamens für die Windows-Authentifizierung oder die SQL Server-Authentifizierung verbunden sein, der Mitglied der festen Serverrolle sysadmin ist.

  • Das Database Engine (Datenbankmodul)-Abfrage-Editor-Fenster muss mit einer Instanz des Database Engine (Datenbankmodul) von SQL Server 2005 Service Pack 2 (SP2) oder höher 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.

Siehe auch

Verweis

Abfrage-Editor des Datenbankmoduls (SQL Server Management Studio)

Konzepte

Transact-SQL-Debugger

Ausführen des Transact-SQL-Debuggers

Schrittweises Durchlaufen von Transact-SQL-Code

Transact-SQL-Debuggerinformationen