Wie Sie ein Skript programmgesteuert öffnen Sie Ports für SQL Server auf Systemen verwenden, die Windows XP Service Pack 2 ausgeführt wird

Einführung

Microsoft Windows XP Service Pack 2 (SP2) enthält die Windows-Firewall. Windows-Firewall ist eine erweiterte Version (Internet Connection Firewall, ICF). Standardmäßig ist die Windows-Firewall auf Computern aktiviert, auf denen Windows XP Service Pack 2 ausgeführt werden. Windows-Firewall blockiert einige Netzwerkschnittstellen, die TCP/IP verwenden, verwendet Named Pipes oder Multiprotokoll Remote Procedure Call (RPC) verwenden. Diese Blockierung beeinflussen Microsoft Data Engine (MSDE), Microsoft SQL Server 2000 und Microsoft SQL Server 2005.


Wenn Sie eine Anwendung haben, die müssen SQL Server oder MSDE mit Named Pipes über TCP/IP oder mithilfe von RPC-Zugriff auf das Netzwerk haben, können Sie Skripts bereitgestellt werden im Abschnitt "Weitere Informationen" programmgesteuert anstelle von Windows-Firewall die erforderlichen Ports geöffnet.

In diesem Artikel sind zwei Skripts enthalten. Das erste Skript konfiguriert programmgesteuert Windows Firewall für SQL Server im Netzwerk auf alle Protokolle überwachen. Das zweite Skript konfiguriert Windows Firewall für SQL Server zum Abhören von TCP/IP nur programmgesteuert.

Hinweis Öffnen von Ports auf einem Bedarf nur empfohlen.



Skripts, die in diesem Artikel beschriebenen bieten Multiprotokoll (RPC) über Named Pipes-Zugriff. Wenn Sie RPC über TCP ausführen, finden Sie in folgenden Microsoft Knowledge Base-Artikel für Informationen über TCP:
841252 manuell aktivieren von TCP/IP auf Windows XP Service Pack 2 für SQL Server 2000

Weitere Informationen

Ein Skript, mit dem Sie alle Ports öffnen

Das Skript, das in diesem Abschnitt, programmgesteuert beschrieben wird konfiguriert Windows Firewall für SQL Server im Netzwerk auf alle Protokolle überwachen.

Wichtige Hinweise zu diesem Skript
  • Führen Sie dieses Skript nur auf Computern, auf denen Windows XP Service Pack 2 ausgeführt werden.
  • Dieses Skript enthält zusätzliche Optionen zum Aktivieren von Named Pipes und Multiprotokoll (RPC).
  • Dieses Skript ermöglicht Multiprotokoll (RPC) über Named Pipes und nur Port 445 geöffnet.
  • Dieses bietet keine Funktionen zum Bereich angeben.

Gehen Sie folgendermaßen vor, um das Skript zu erstellen:
  1. Starten Sie den Editor.
  2. Kopieren Sie und fügen Sie den folgenden Code in den Editor:
    echo off
    if "%1"=="-np" goto HandleNp
    if "%1"=="-rpc" goto HandleRpc
    if "%1"=="-tcp" goto HandleTcp
    if "%1"=="-browser" goto HandleBrowser

    rem Usage
    :Usage

    echo "Usage: setupSqlServerPortAll -[np | rpc | tcp | browser] -port [portnum] -[enable | disable]
    echo "-np : Setup SQLServer to listen on Named Pipe connections for local subnet only"
    echo "-rpc : Setup SQLServer to listen on RPC multiprotocol for local subnet only"
    echo "-tcp : Setup SQLServer to listen on TCP connections for local subnet only"
    echo " Must specify a port if -tcp option is chosen."
    echo "-browser : Setup SQLServer to provide SSRP service to support named instances"
    echo "-port : Applies only for tcp"
    echo " One of the following options MUST be specified"
    echo "-enable: Enables a port"
    echo "-disable: Disables a port"

    goto Exit

    :HandleTcp
    echo %2
    if "%2"=="-port" goto cont
    goto Usage
    :cont
    if "%3"=="" goto Usage
    if "%4"=="-enable" goto EnableTcp
    if "%4"=="-disable" goto DisableTcp
    goto Usage

    :EnableTcp
    echo "Enabling SQLServer tcp access for port %3 local subnet only"
    netsh firewall set portopening tcp %3 SQL%3 ENABLE subnet
    goto Exit

    :DisableTcp
    echo Disabling SQLServer tcp access for port %3 local subnet only"
    netsh firewall set portopening tcp %3 SQL%3 disable subnet
    goto Exit

    :HandleNp
    if "%2"=="-enable" goto EnableNp
    if "%2"=="-disable" goto DisableNp
    goto Usage

    :EnableNp
    echo "Enabling SQLServer named pipe access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP ENABLE subnet
    goto Exit

    :DisableNp
    echo Disabling SQLServer named pipe access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP DISABLE subnet
    goto Exit

    :HandleRpc
    if "%2"=="-enable" goto EnableRpc
    if "%2"=="-disable" goto DisableRpc
    goto Usage

    :EnableRpc
    echo "Enabling SQLServer multiprotocol access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP enable subnet
    goto Exit

    :DisableRpc
    echo Disabling SQLServer multiprotocol access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP disable subnet
    goto Exit

    :HandleBrowser
    if "%2"=="-enable" goto EnableBrowser
    if "%2"=="-disable" goto DisableBrowser
    goto Usage

    :EnableBrowser
    echo "Enabling SQLServer SSRP service for local subnet only"
    netsh firewall set portopening udp 1434 SQLBrowser enable subnet
    goto Exit

    :DisableBrowser
    echo "Enabling SQLServer SSRP service for local subnet only"
    netsh firewall set portopening udp 1434 SQLBrowser disable subnet
    goto Exit

    :Exit
    endlocal


  3. Speichern Sie die Datei als TXT-Datei, und benennen Sie die Datei ConfigSQLPorts.txt.
  4. Benennen Sie die Datei ConfigSQLPorts.txt in ConfigSQLPorts.bat.

Beim Ausführen des Skripts in der Datei ConfigSQLPorts.bat müssen Sie den Computer verwenden, dem das Skript gespeichert ist. Gehen Sie folgendermaßen vor, um das Skript auszuführen:
  1. Klicken Sie auf Start, klicken Sie auf Ausführen, geben Sie cmd ein, und klicken Sie auf OK.
  2. Im Befehlsfenster Befehl "cd" Ordner ändern, bis Sie im gleichen Ordner sind, denen in die Datei ConfigSQLPorts.bat gespeichert wird. Z. B. C:\Myfiles die Datei ConfigSQLPorts.bat gespeichert, würde Sie CD Myfiles an der Befehlszeile eingeben und drücken Sie die EINGABETASTE. Dies wird C:\Myfiles Ordner ändern.
  3. Führen Sie das Skript ConfigSQLPorts.bat eingeben
    ConfigSQLPorts.bat Befehl und drücken die EINGABETASTE.




Ein Skript, mit dem Sie nur TCP Ports öffnen

In diesem Abschnitt beschriebene Skript konfiguriert Windows Firewall für SQL Server TCP/IP nur überwacht.

Gehen Sie folgendermaßen vor, um das Skript zu erstellen:
  1. Starten Sie den Editor.
  2. Kopieren Sie und fügen Sie den folgenden Code in den Editor:

    echo offsetlocal

    if "%1"=="-port" goto HandleTcp

    rem Usage
    :Usage

    echo "Usage: setupSqlServerPort -port [portnum] -[enable | disable] [ALL | SUBNET]"
    echo -port : Specifies the port to be enabled or disabled. Port is not optional.
    echo -enable: Enables a port
    echo -enable ALL: enables access for ALL
    echo -enable SUBNET: enables access for SUBNET
    echo -disable: Disables a port
    echo one of -enable or -disable must be specified
    echo the default scope is SUBNET only

    goto Exit

    :HandleTcp
    if "%2"=="" goto Usage
    if "%3"=="-enable" goto EnableTcp
    if "%3"=="-disable" goto DisableTcp
    goto Usage


    :EnableTcp
    set SCOPE="%4"
    if "%4"=="ALL" echo "Enabling SQLServer tcp access for port %2 ALL access"
    if "%4"=="SUBNET" echo "Enabling SQLServer tcp access for port %2 subnet only access"
    if "%4"=="" set SCOPE="SUBNET"

    netsh firewall set portopening tcp %2 SQL_PORT_%2 ENABLE %SCOPE%
    goto Exit

    :DisableTcp
    echo Disabling SQLServer tcp access for port %2"
    netsh firewall set portopening tcp %2 SQL_PORT_%2 disable
    goto Exit

    :Exit
    endlocal


  3. Speichern Sie die Datei als TXT-Datei, und benennen Sie die Datei SetupSqlServerPort.txt.
  4. Benennen Sie die Datei SetupSqlServerPort.txt in SetupSqlServerPort.bat.


Beim Ausführen des Skripts SetupSqlServerPort.bat müssen Sie den Computer verwenden, dem das Skript gespeichert ist. Gehen Sie folgendermaßen vor, um das Skript auszuführen:
  1. Klicken Sie auf Start, klicken Sie auf Ausführen, geben Sie cmd ein, und klicken Sie auf OK.
  2. Im Befehlsfenster Befehl "cd" Ordner ändern, bis Sie im gleichen Ordner sind, denen in die Datei SetupSqlServerPort.bat gespeichert wird. Z. B. C:\Myfiles die Datei SetupSqlServerPort.bat gespeichert, würde Sie CD Myfiles an der Befehlszeile eingeben und drücken Sie die EINGABETASTE. Dies wird C:\Myfiles Ordner ändern.
  3. Führen Sie das Skript SetupSqlServerPort.bat an der Befehlszeile geben Sie setupSqlServerPort.bat, und drücken Sie die EINGABETASTE.


Referenzen

Weitere Informationen zum Konfigurieren von SQL Server 2000 und Windows XP Service Pack 2 Klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

841249 so konfigurieren Sie Windows XP Service Pack 2 (SP2) für die Verwendung mit SQL Server

Eigenschaften

Artikelnummer: 839980 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback