如何:設定用於 Database Engine 存取的 Windows 防火牆

防火牆系統有助於預防未經授權存取電腦資源。若要透過防火牆存取 SQL Server Database Engine 的執行個體,您必須在執行 SQL Server 之電腦上的防火牆設定為允許存取。

如需有關預設 Windows 防火牆設定的詳細資訊以及影響 Database Engine、Analysis Services、Reporting Services 和 Integration Services 之 TCP 通訊埠的描述,請參閱<將 Windows 防火牆設定成允許 SQL Server 存取>和<透過網際網路連接到 SQL Server>。目前有很多種防火牆系統。如需系統專用的資訊,請參閱防火牆文件集。

重要事項重要事項

在防火牆中開啟通訊埠可能會讓您的伺服器面臨惡意攻擊的威脅。請先確定您已了解防火牆系統,然後再開啟通訊埠。如需詳細資訊,請參閱<SQL Server 安裝的安全性考量>。

允許存取的主要步驟包括:

  1. 將 Database Engine 設定為使用特定 TCP/IP 通訊埠。Database Engine 的預設執行個體會使用 1433 通訊埠,不過這是可以變更的。Database Engine 所使用的通訊埠列在 SQL Server 錯誤記錄檔中。SQL Server Express、SQL Server Compact 3.5 SP2 的執行個體及 Database Engine 的具名執行個體都使用動態通訊埠。若要將這些執行個體都設定為使用特定通訊埠,請參閱<如何:設定伺服器接聽特定 TCP 通訊埠 (SQL Server 組態管理員)>。

  2. 針對經過授權的使用者或電腦,將防火牆設定為允許存取該通訊埠。

[!附註]

SQL Server Browser 服務可讓使用者連接至並未接聽通訊埠 1433 的 Database Engine 執行個體,而不用知道通訊埠編號。若要使用 SQL Server Browser,您必須開啟 UDP 通訊埠 1434。若要提升至最安全的環境,請將 SQL Server Browser 服務保留在停止狀態,並將用戶端設定為使用此通訊埠編號連接。

[!附註]

依預設,Microsoft Windows XP Service Pack 2 啟用 Windows 防火牆,它會關閉通訊埠 1433 來防止網際網路電腦連接到您電腦上 SQL Server 的預設執行個體。除非您重新開啟通訊埠 1433,否則無法使用 TCP/IP 連接至預設執行個體。下列程序將說明設定 Windows XP 防火牆的基本步驟。如需詳細資訊,請參閱 Windows 文件集。

除了將 SQL Server 設定為接聽固定通訊埠並開啟此通訊埠以外,您也可以列出 SQL Server 可執行檔 (Sqlservr.exe) 做為被封鎖程式的例外。當您想要繼續使用動態通訊埠時,請使用此方法。不過,這個方法只能存取 SQL Server 的其中一個執行個體。

Windows Vista 及 Windows Server 2008 和更新版本

下列程序使用「具有進階安全性的 Windows 防火牆」Microsoft Management Console (MMC) 嵌入式管理單元設定 Windows 防火牆。從 Windows Vista 和 Windows Server 2003 開始,提供這個嵌入式管理單元。「具有進階安全性的 Windows 防火牆」只會設定目前的設定檔。如需有關「具有進階安全性的 Windows 防火牆」的詳細資訊,請參閱<將 Windows 防火牆設定成允許 SQL Server 存取

若要在 Windows 防火牆中開啟通訊埠以便 TCP 存取

  1. [開始] 功能表上、按一下 [執行],輸入 WF.msc,然後按一下 [確定]

  2. [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按一下 [輸入規則],然後按一下動作窗格中的 [新增規則]

  3. [規則類型] 對話方塊中,選取 [通訊埠],然後按 [下一步]

  4. [通訊協定及連接埠] 對話方塊中,選取 [TCP]。選取 [特定本機連接埠],然後輸入 Database Engine 執行個體的通訊埠編號,例如 1433 表示預設執行個體。按 [下一步]

  5. [動作] 對話方塊中,選取 [允許該連線],然後按 [下一步]

  6. [設定檔] 對話方塊中,選取您想要連線至 Database Engine 時,描述電腦連線環境的設定檔,然後按 [下一步]

  7. [名稱] 對話方塊中,輸入此規則的名稱和描述,然後按一下 [完成]

若要在使用動態通訊埠時開放 SQL Server 的存取

  1. [開始] 功能表上、按一下 [執行],輸入 WF.msc,然後按一下 [確定]

  2. [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按一下 [輸入規則],然後按一下動作窗格中的 [新增規則]

  3. [規則類型] 對話方塊中,選取 [程式],然後按 [下一步]

  4. [程式] 對話方塊中,選取 [這個程式路徑]。按一下 [瀏覽],並導覽至您想要透過防火牆存取的 SQL Server 執行個體,然後按一下 [開啟]。根據預設,SQL Server 位於 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe。按 [下一步]

  5. [動作] 對話方塊中,選取 [允許該連線],然後按 [下一步]

  6. [設定檔] 對話方塊中,選取您想要連線至 Database Engine 時,描述電腦連線環境的設定檔,然後按 [下一步]

  7. [名稱] 對話方塊中,輸入此規則的名稱和描述,然後按一下 [完成]

Windows XP 和 Windows Server 2003

下列程序會使用 Windows XP 和 Windows Server 2003 [控制台] 中的 [Windows 防火牆] 項目來設定 Windows 防火牆,該項目只針對目前的網路位置設定檔來設定防火牆。若要設定 Windows 防火牆,也可以使用「具有進階安全性的 Windows 防火牆」Microsoft Management Console (MMC) 嵌入式管理單元和 netsh 命令列工具。如需有關這些工具的詳細資訊,請參閱<將 Windows 防火牆設定成允許 SQL Server 存取>。

在 Windows 防火牆中開啟通訊埠以便 TCP 存取

  1. [開始] 功能表上,按一下 [執行],輸入 firewall.cpl,然後按一下 [確定]

  2. [Windows 防火牆] 對話方塊中,按一下 [例外] 索引標籤,然後按一下 [新增連接埠]

  3. [加入通訊埠] 對話方塊的 [名稱] 方塊中,輸入 SQL Server<instance name>。

  4. [通訊埠號碼] 文字方塊中,輸入 Database Engine 執行個體的通訊埠編號,例如預設執行個體的通訊埠編號是 1433。

  5. 確認已選取 [TCP],然後按一下 [確定]

  6. 若要開啟通訊埠以便公開 SQL Server Browser 服務,請按一下 [加入通訊埠],在 [名稱] 文字方塊中輸入 SQL Server Browser,在 [通訊埠編號] 文字方塊中輸入 1434,選取 [UDP],然後按一下 [確定]

    [!附註]

    若要允許具名管道透過防火牆存取,您也必須透過防火牆啟用 [檔案及印表機共用]

  7. 關閉 [Windows 防火牆][內容] 對話方塊。

[!附註]

按一下 [Windows 防火牆] 對話方塊中的 [新增程式] 以設定其他選項,例如授與對特定程式存取的權限及限制對特定 IP 位址或子網路的存取。如需詳細資訊,請參閱 Windows 文件集。

透過 Windows 防火牆存取程式

  1. [Windows 防火牆] 對話方塊中,按一下 [例外] 索引標籤,然後再按一下 [新增程式]

  2. 按一下 [瀏覽],然後導覽至您想要透過防火牆存取的 SQL Server 執行個體,然後按一下 [開啟]。根據預設,SQL Server 位於 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe。

  3. 若要關閉 Windows 防火牆程式,請按兩次 [確定]

如需如何設定靜態通訊埠、開啟防火牆及使用 SQL Server Management Studio 連接至 Database Engine 的簡短教學課程,請參閱<教學課程:Database Engine 使用者入門>。