如何將多宿主計算機配置為允許SQL Server訪問
當服務器必須提供與兩個或更多個網(wǎng)絡或網(wǎng)絡子網(wǎng)的連接時,典型的方案是使用多宿主計算機。此計算機通常位于外圍網(wǎng)絡(也稱為 DMZ、外圍安全區(qū)域或屏蔽子網(wǎng))中。本主題介紹在多宿主環(huán)境中如何對 SQL Server 和高級安全 Windows 防火墻進行配置以便為 SQL Server 實例提供多個網(wǎng)絡連接。
注意
多宿主計算機有多個網(wǎng)絡適配器或者已配置為一個網(wǎng)絡適配器使用多個 IP 地址。雙宿主計算機有兩個網(wǎng)絡適配器或者已配置為一個網(wǎng)絡適配器使用兩個 IP 地址。
在繼續(xù)本主題之前,您應當熟悉配置 Windows 防火墻以允許 SQL Server 訪問主題中提供的信息。本主題包含有關 SQL Server 組件如何與防火墻一起使用的基本信息。
本示例假設:
運行 SQL Server 的計算機安裝的是 Windows Server 2008 或 Windows Vista 操作系統(tǒng)。如果運行的是 Windows Server 2003 或 Windows XP,請參閱本主題后面的運行 Windows Server 2003 或 Windows XP 時的注意事項部分。
計算機中安裝了兩個網(wǎng)絡適配器??梢杂幸粋€或多個網(wǎng)絡適配器是無線的。可以通過使用一個網(wǎng)絡適配器的 IP 地址,使用環(huán)回 IP 地址 (127.0.0.1) 作為第二個網(wǎng)絡適配器來模擬有兩個網(wǎng)絡適配器。
為簡單起見,本示例使用 IPv4 地址。使用 IPv6 地址可執(zhí)行相同的過程。
注意
IPv4 地址是一串四個數(shù)字(稱為八位字節(jié))。每個數(shù)字小于 255,由句點分隔,例如 127.0.0.1。IPv6 地址是一串八個十六進制數(shù)字,由冒號分隔,如 fe80:4898:23:3:49a6:f5c1:2452:b994。
防火墻規(guī)則可能允許通過特定端口(如端口 1433)進行訪問,也可能允許訪問 SQL Server 數(shù)據(jù)庫引擎程序 (sqlservr.exe)。哪個方法都不會比另一個方法更好。因為外圍網(wǎng)絡中的服務器比 Intranet 上的服務器更容易受到攻擊,本主題假設您希望進行更精確的控制并單獨選擇打開的端口。出于上述原因,本主題假設您將把 SQL Server 配置為偵聽固定端口。有關 SQL Server 使用的端口的詳細信息,請參閱配置 Windows 防火墻以允許 SQL Server 訪問。
本示例使用 TCP 端口 1433 配置對數(shù)據(jù)庫引擎的訪問??梢允褂孟嗤某R?guī)步驟來配置不同的 SQL Server 組件使用的其他端口。
本示例中的常規(guī)步驟如下:
確定計算機的 IP 地址。
將 SQL Server 配置為偵聽特定的 TCP 端口。
配置高級安全 Windows 防火墻。
可選過程
如果您已經(jīng)知道計算機可用的 IP 地址且 SQL Server 使用該地址,則可以跳過這些過程。
確定計算機上可用的 IP 地址
在安裝 SQL Server 的計算機上,依次單擊“開始”和“運行”,鍵入 cmd,然后單擊“確定”。
在命令提示符窗口中,鍵入 ipconfig,然后按 Enter 列出此計算機上可用的 IP 地址。
注意
ipconfig 命令有時會列出許多可能的連接,包括已斷開的連接。ipconfig 命令可同時列出 IPv4 和 IPv6 地址。
請注意正在使用的 IPv4 地址和 IPv6 地址。列表中的其他信息(例如臨時地址、子網(wǎng)掩碼和默認網(wǎng)關)是配置 TCP/IP 網(wǎng)絡的重要信息。但是在本示例中未用到這些信息。
確定 SQL Server 使用的 IP 地址和端口
單擊“開始”,依次指向“所有程序”、Microsoft SQL Server 2008 R2 和“配置工具”,然后單擊“SQL Server 配置管理器”。
在 SQL Server 配置管理器的控制臺窗格中,依次展開“SQL Server 網(wǎng)絡配置”和“<實例名> 的協(xié)議”,然后雙擊 TCP/IP。
在“TCP/IP 屬性”對話框的“IP 地址”選項卡上,將顯示若干個 IP 地址,格式為:IP1、IP2…,一直到 IPAll。這些 IP 地址中有一個是環(huán)回適配器的 IP 地址 (127.0.0.1)。其他 IP 地址是計算機上配置的各個 IP 地址。
對于任意 IP 地址,如果“TCP 動態(tài)端口”對話框中包含 0,則指示數(shù)據(jù)庫引擎正在偵聽動態(tài)端口。本示例使用固定端口,而不是使用在重新啟動時會發(fā)生更改的動態(tài)端口。因此,如果“TCP 動態(tài)端口”對話框中包含 0,則刪除 0。
請注意為要配置的每個 IP 地址列出的 TCP 端口。對于本示例,假設兩個 IP 地址都偵聽默認端口 1433。
如果不希望 SQL Server 使用某些可用端口,則請在“協(xié)議”選項卡上將“全部偵聽”值更改為“否”;在“IP 地址”選項卡上,將不想使用的 IP 地址的“活動”值更改為“否”。
配置高級安全 Windows 防火墻
知道計算機所使用的 IP 地址和 SQL Server 所使用的端口后,就可以創(chuàng)建防火墻規(guī)則,然后為特定的 IP 地址配置這些規(guī)則。
創(chuàng)建防火墻規(guī)則
在安裝 SQL Server 的計算機上,以管理員身份登錄。
依次單擊“開始”和“運行”,鍵入 wf.msc,然后單擊“確定”。
在“用戶帳戶控制”對話框中,單擊“繼續(xù)”使用管理員憑據(jù)打開高級安全 Windows 防火墻管理單元。
在“概述”頁上,確認已啟用 Windows 防火墻。
在左窗格中,單擊“入站規(guī)則”。
右鍵單擊“入站規(guī)則”,然后單擊“新建規(guī)則”以打開“新建入站規(guī)則向?qū)?rdquo;。
可以為 SQL Server 程序創(chuàng)建規(guī)則。但是,由于本示例使用固定端口,所以請選擇“端口”,然后單擊“下一步”。
在“協(xié)議和端口”頁上,選擇 TCP。
選擇“指定的本地端口”。鍵入端口號(由逗號分隔),然后單擊“下一步”。在本示例中,您將配置默認端口;因此請輸入 1433。
在“操作”頁上,查看各選項。在本示例中,不使用防火墻強制進行安全連接。因此,請單擊“允許連接”,然后單擊“下一步”。
注意
您的環(huán)境可能要求使用安全連接。如果選擇其中一個安全連接選項,則可能必須配置證書和“強行加密”選項。有關安全連接的詳細信息,請參閱加密與 SQL Server 的連接和如何啟用數(shù)據(jù)庫引擎的加密連接(SQL Server 配置管理器)。
在“配置文件”頁上,為該規(guī)則選擇一個或多個配置文件。如果您不熟悉防火墻配置文件,請單擊防火墻程序中的“了解有關配置文件的詳細信息”鏈接。
如果計算機是服務器而且僅當連接到域時才可用,則請選擇“域”,然后單擊“下一步”。
如果計算機為移動計算機(例如便攜式計算機),則它在連接到不同網(wǎng)絡時很可能使用多個配置文件。對于移動計算機,可以為不同的配置文件配置不同的訪問功能。例如,可以在計算機使用域配置文件時允許訪問,而在計算機使用公共配置文件時不允許訪問。
在“名稱”頁上,提供規(guī)則的名稱和說明,然后單擊“完成”。
重復此過程,為 SQL Server 將使用的每個 IP 地址創(chuàng)建另一個規(guī)則。
創(chuàng)建完一個或多個規(guī)則后,執(zhí)行下列步驟以將計算機上的每個 IP 地址配置為使用規(guī)則。
為特定的 IP 地址配置防火墻規(guī)則
在“高級安全 Windows 防火墻”的“入站規(guī)則”頁上,右鍵單擊剛創(chuàng)建的規(guī)則,然后單擊“屬性”。
在“規(guī)則屬性”對話框中,選擇“范圍”選項卡。
在“本地 IP 地址”區(qū)域中,選擇“下列 IP 地址”,然后單擊“添加”。
在“IP 地址”對話框中,選擇“此 IP 地址或子網(wǎng)”,然后鍵入要配置的 IP 地址之一。
單擊“確定”。
在“遠程 IP 地址”區(qū)域中,選擇“下列 IP 地址”,然后單擊“添加”。
使用“IP 地址”對話框為計算機上選定的 IP 地址配置連接??梢詥⒂迷醋蕴囟?IP 地址、某些范圍的 IP 地址、整個子網(wǎng)或源自特定計算機的連接。若要正確配置此選項,您需要十分了解網(wǎng)絡。有關網(wǎng)絡的信息,請與網(wǎng)絡管理員聯(lián)系。
若要關閉“IP 地址”對話框,請單擊“確定”;然后單擊“確定”關閉“規(guī)則屬性”對話框。
若要配置多宿主計算機上的其他 IP 地址,請使用另一 IP 地址和另一規(guī)則重復此過程。
運行 Windows Server 2003 或 Windows XP 時的注意事項
配置運行 Windows Server 2003 或 Windows XP 操作系統(tǒng)的多宿主計算機的方式與配置 Windows Server 2003 和 Windows Vista 類似。但是,由于高級安全 Windows 防火墻不可用,因此必須對每個 IP 地址使用不同的端口。常規(guī)步驟如下所示。
在 Windows Server 2003 或 Windows XP 中為選定的 IP 地址配置防火墻規(guī)則
將數(shù)據(jù)庫引擎配置為偵聽多個 TDS 端點。有關詳細信息,請參閱如何將數(shù)據(jù)庫引擎配置為偵聽多個 TCP 端口。
通過將“全部偵聽”選項設置為“否”,使用 SQL Server 配置管理器禁用偵聽全部 IP 地址。
將 SQL Server 配置為偵聽每個 IP 地址的不同 TCP 端口,然后重新啟動 SQL Server。
使用 Windows 防火墻程序為每個端口創(chuàng)建防火墻規(guī)則,并使用范圍設置將每個端口限定為源自期望的 IP 地址、某些范圍的 IP 地址、整個子網(wǎng)或特定的命名計算機的連接。
【編輯推薦】