Použití skriptu k programovému otevírání portů pro SQL Server k použití u systémů se systémem Windows XP Service Pack 2

ÚVOD

Microsoft Windows XP Service Pack 2 (SP2) obsahuje bránu Firewall systému Windows. Brána Firewall systému Windows je vylepšenou verzí Internet Connection Firewall (ICF). Standardně je povolena brána Windows Firewall v počítačích se systémem Windows XP Service Pack 2. Brána Firewall systému Windows bude blokovat některé síťová připojení, která používají protokol TCP/IP, které používají pojmenované kanály nebo které používají víceprotokolové vzdálené volání procedur (RPC). Toto blokování může ovlivnit Microsoft Data Engine (MSDE), Microsoft SQL Server 2000 a Microsoft SQL Server 2005.


Pokud máte aplikaci, která vyžaduje SQL Server nebo MSDE mít přístup k síti pomocí pojmenovaných kanálů, pomocí TCP/IP nebo pomocí RPC, můžete použít skripty, které jsou k dispozici v části "Další informace" otevřít požadované porty programově namísto použití Brána Firewall systému Windows.

V tomto článku jsou zahrnuty dva skripty. První skriptu programově konfiguruje Windows Firewall povolit SQL Server naslouchat v síti všechny protokoly. Druhý skriptu programově konfiguruje Windows Firewall povolit SQL Server k naslouchání pouze na TCP/IP.

Poznámka: Doporučujeme otevřete porty na základě pouze podle potřeby.



Skripty, které jsou zmíněny v tomto článku poskytují víceprotokolové (RPC) přes pojmenované kanály pouze přístup. Pokud používáte protokol RPC přes TCP, naleznete v následujícím článku znalostní báze Microsoft Knowledge Base informace o použití protokolu TCP/IP:
Jak 841252 ruční povolení připojení protokolu TCP/IP v systému Windows XP Service Pack 2 pro SQL Server 2000

Další informace

Skript, který slouží k otevření všech portů

Skript, který je popsán v této části programově konfiguruje Windows Firewall povolit SQL Server naslouchat v síti všechny protokoly.

Důležité poznámky o tento skript
  • Tento skript by měl spustit pouze v počítačích se systémem Windows XP Service Pack 2.
  • Tento skript má další možnosti pro povolení pojmenované kanály a povolení víceprotokolové (RPC).
  • Tento skript umožňuje víceprotokolové (RPC) přes pojmenované kanály pouze a pouze otevře port 445.
  • Tento skript neposkytuje funkce určit obor.

Chcete-li vytvořit skript, postupujte takto:
  1. Spusťte program Poznámkový blok.
  2. Zkopírujte a vložte následující kód do programu Poznámkový blok:
    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. Uložte soubor jako soubor txt a název souboru ConfigSQLPorts.txt.
  4. Přejmenujte soubor ConfigSQLPorts.txt ConfigSQLPorts.bat.

Při spuštění skriptu v souboru ConfigSQLPorts.bat musíte použít skript je uložen v počítači. Chcete-li skript spustit, postupujte takto:
  1. Klepněte na tlačítko Start, na příkaz Spustit, zadejte příkaz cmd a klepněte na tlačítko OK.
  2. V okně příkazu pomocí příkazu "cd" změnit složky, dokud jsou ve stejné složce uložené v souboru ConfigSQLPorts.bat. Například pokud ConfigSQLPorts.bat soubor je uložen v C:\Myfiles, můžete by zadejte CD myfiles příkazového řádku a stiskněte klávesu ENTER. Tím se změní do složky C:\Myfiles.
  3. ConfigSQLPorts.bat skript spustit, zadejte
    ConfigSQLPorts.bat příkazového řádku a stiskněte klávesu ENTER.




Skript, který lze otevřít pouze porty TCP/IP

Skript, který je popsán v této části konfiguruje Windows Firewall povolit SQL Server k naslouchání pouze na TCP/IP.

Chcete-li vytvořit skript, postupujte takto:
  1. Spusťte program Poznámkový blok.
  2. Zkopírujte a vložte následující kód do programu Poznámkový blok:

    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. Uložte soubor jako soubor txt a název souboru SetupSqlServerPort.txt.
  4. Přejmenujte soubor SetupSqlServerPort.txt SetupSqlServerPort.bat.


Při spuštění skriptu SetupSqlServerPort.bat musíte použít skript je uložen v počítači. Chcete-li skript spustit, postupujte takto:
  1. Klepněte na tlačítko Start, na příkaz Spustit, zadejte příkaz cmd a klepněte na tlačítko OK.
  2. V okně příkazu pomocí příkazu "cd" změnit složky, dokud jsou ve stejné složce uložené v souboru SetupSqlServerPort.bat. Například pokud SetupSqlServerPort.bat soubor je uložen v C:\Myfiles, můžete by zadejte CD myfiles příkazového řádku a stiskněte klávesu ENTER. Tím se změní do složky C:\Myfiles.
  3. Spuštění skriptu SetupSqlServerPort.bat na příkazovém řádku zadejte setupSqlServerPort.bata stiskněte klávesu ENTER.


Odkazy

Další informace o konfiguraci serveru SQL Server 2000 a Windows XP Service Pack 2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:

841249 postup konfigurace systému Windows XP Service Pack 2 (SP2) pro použití se serverem SQL Server

Vlastnosti

ID článku: 839980 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor