為 Analysis Services 的存取設定 Windows 防火牆

當您需要在防火牆中解除封鎖通訊埠,以允許存取 Analysis Services 或 PowerPivot for SharePoint 時,請參閱本主題中的資訊。您可以遵循本主題所提供的步驟,設定通訊埠以及防火牆。實際上,您必須執行這些步驟,才能允許存取 Analysis Services 伺服器。

防火牆組態需求視您安裝的 Analysis Services 元件而異。如果您是安裝 PowerPivot for SharePoint,就不必開啟 Windows 防火牆中的通訊埠。相較之下,獨立 Analysis Services 安裝的遠端連線就一定要開啟通訊埠。

預設的 Analysis Services 執行個體會在 TCP 通訊埠 2383 上接聽,不過您可以設定讓伺服器在不同的固定通訊埠上接聽,或是使用動態通訊埠指派和 SQL Server Browser 服務。

本主題包含下列章節:

檢查 Analysis Services 所使用的通訊埠和防火牆設定

為 Analysis Services 的預設執行個體設定 Windows 防火牆

為 Analysis Services 的具名執行個體設定 Windows 防火牆存取

Analysis Services 叢集的通訊埠組態

PowerPivot for SharePoint 的通訊埠組態

Use a fixed port for a default or named instance of Analysis Services

如需有關預設 Windows 防火牆設定的詳細資訊以及影響 Database Engine、Analysis Services、Reporting Services 和 Integration Services 之 TCP 通訊埠的描述,請參閱<將 Windows 防火牆設定成允許 SQL Server 存取>。

檢查 Analysis Services 所使用的通訊埠和防火牆設定

在 支援的 Microsoft Windows 作業系統中,防火牆預設為開啟,並且封鎖了遠端連線。如果您是執行 Windows Server 2008 R2、Windows Server 2008、Windows 7 或 Windows Vista 作業系統,則必須手動在防火牆中開啟通訊埠,允許傳入要求傳送至 Analysis Services。SQL Server 安裝程式不會為您執行此步驟。

您可以在 msmdsrv.ini 檔和 SQL Server Management Studio 之 Analysis Services 執行個體的 [一般屬性] 頁面中指定通訊埠設定。如果 Port 設定為正整數,表示服務將接聽固定通訊埠。如果 Port 設定為 0,表示服務將接聽通訊埠 2383 (Analysis Services 執行個體為預設執行個體) 或動態指派的通訊埠 (Analysis Services 執行個體為具名執行個體)。

只有具名執行個體會使用動態通訊埠指派。MSOLAP$InstanceName 服務會在啟動時決定要使用的通訊埠。您可以執行下列步驟,決定要由具名執行個體使用的實際通訊埠編號:

  • 啟動 [工作管理員],然後按一下 [服務] 以取得 MSOLAP$InstanceName 的 PID。

  • 從命令列執行 netstat –ao –p TCP,檢視該 PID 使用的 TCP 通訊埠資訊。

  • 使用 SQL Server Management Studio 並使用 <IP 位址>:<通訊埠編號> 格式連接到 Analysis Services 伺服器,確認該通訊埠正確無誤。

雖然應用程式可能會接聽特定通訊埠,但是只要防火牆封鎖存取權限,連接作業就不會成功。您必須解除封鎖 msmdsrv.exe 或此程式在防火牆中接聽之固定通訊埠的存取權限,才能連接到具名 Analysis Services 執行個體。本主題的其他章節將指示您如何解除封鎖存取權限。

若要確認是否已針對 Analysis Services 定義防火牆設定,請使用 [控制台] 中的 [具有進階安全性的 Windows 防火牆]。[監視] 節點下的 [防火牆] 頁面會顯示針對本機伺服器定義的完整規則清單。

請注意,您必須手動為 Analysis Services 伺服器定義所有防火牆例外。雖然 Analysis Services 會保留通訊埠 2382 和 2383,但是 SQL Server 安裝程式與所有組態工具都不會為您定義可允許存取通訊埠或程式可執行檔的防火牆規則。

為 Analysis Services 的預設執行個體設定 Windows 防火牆

Analysis Services 的預設執行個體會接聽 TCP/IP 通訊埠 2383。如果您已安裝預設執行個體,而且想要使用此通訊埠,您只需要在 Windows 防火牆中解除封鎖 TCP 通訊埠 2383 的傳入存取權限,就能從遠端存取 Analysis Services 的預設執行個體。如果您已安裝預設執行個體,但是想要將服務設定為接聽固定通訊埠,請參閱本主題中的<Use a fixed port for a default or named instance of Analysis Services>。

若要確認服務是否當做預設執行個體 (MSSQLServerOLAPService) 執行,請檢查 [SQL Server 組態管理員] 中的服務名稱。Analysis Services 的預設執行個體一律會列為 [SQL Server Analysis Services (MSSQLSERVER)]

[!附註]

不同的 Windows 作業系統可提供替代工具來設定 Windows 防火牆。這些工具大部分都能讓您選擇要開啟特定通訊埠還是程式可執行檔。除非有指定程式可執行檔的原因,否則建議您指定通訊埠。

指定輸入規則時,請務必採用將來能讓您輕易找到規則的命名規範 (例如 SQL Server Analysis Services (TCP-in))。

具有進階安全性的 Windows 防火牆

  1. 在 Windows 7 或 Windows Vista 的 [控制台] 中,按一下 [系統及安全性]、選取 [Windows 防火牆],然後按一下 [進階設定]。在 Windows Server 2008 或 2008 R2 上,開啟 [系統管理工具],然後按一下 [具有進階安全性的 Windows 防火牆]

  2. 以滑鼠右鍵按一下 [輸入規則],然後選取 [新增規則]

  3. 在 [規則類型] 中,按一下 [連接埠],然後按 [下一步]

  4. 在 [通訊協定及連接埠] 中,選取 [TCP],然後在 [特定本機連接埠] 中輸入 2383。

  5. 在 [動作] 中,按一下 [允許連線],然後按 [下一步]

  6. 在 [設定檔] 中,清除任何不適用的網路位置,然後按 [下一步]

  7. 在 [名稱] 中,輸入此規則的描述性名稱 (例如 SQL Server Analysis Services (tcp-in) 2383),然後按一下 [完成]

  8. 若要確認已啟用遠端連接,請在不同的電腦上開啟 SQL Server Management Studio 或 Excel,然後在 [伺服器名稱] 中指定伺服器的網路名稱,以連接至 Analysis Services。

    [!附註]

    在您授與權限之前,其他使用者將無法存取此伺服器。如需詳細資訊,請參閱<授與使用者存取權>。

Netsh AdvFirewall 語法

  • 下列命令會建立輸入規則,允許內送要求使用 TCP 通訊埠 2383。

    netsh advfirewall firewall add rule name="SQL Server Analysis Services inbound on TCP 2383" dir=in action=allow protocol=TCP localport=2383 profile=domain
    

為 Analysis Services 的具名執行個體設定 Windows 防火牆存取

Analysis Services 的具名執行個體可以在固定通訊埠或是動態指派的通訊埠上接聽,其中 SQL Server Browser 服務會提供在連線當時服務的最新連線資訊。

選擇下列其中一種方法來啟用 Analysis Services 之具名執行個體的遠端存取:

  • 使用固定通訊埠,並在 Windows 防火牆中解除封鎖該通訊埠。以下列格式連接至伺服器:<伺服器名稱 >:<通訊埠編號>。

  • 使用動態通訊埠指派與 SQL Server Browser 服務。在 Windows 防火牆中解除封鎖 SQL Server Browser 服務所使用的通訊埠。以下列格式連接至伺服器:<伺服器名稱 >\<執行個體名稱>。

  • 同時使用固定通訊埠與 SQL Server Browser 服務。此方法與動態通訊埠指派方法相同,可讓您使用以下格式連接:<伺服器名稱>\<執行個體名稱>,但在此情況下,伺服器會接聽固定通訊埠。在此狀況下,SQL Server Browser 服務會提供名稱解析給接聽固定通訊埠的 Analysis Services 執行個體。若要使用此方法,將伺服器設定為接聽固定通訊埠、解除封鎖對該通訊埠的存取,然後解除封鎖對 SQL Server Browser 服務所使用之通訊埠的存取。

SQL Server Browser 服務僅能搭配具名執行個體使用,絕不能搭配預設執行個體使用。每當您將任何 SQL Server 功能當做具名執行個體安裝時,就會自動安裝並啟用此服務。如果您選擇的方法需要使用 SQL Server Browser 服務,請確認該服務在您的伺服器上維持啟用並啟動的狀態。

如果您無法使用 SQL Server Browser 服務,則必須指派一個固定通訊埠。如果沒有 SQL Server Browser 服務,所有用戶端連接都必須在連接字串中加入通訊埠編號 (例如,AW-SRV01:54321)。

選項 1:使用動態通訊埠指派並解除封鎖對 SQL Server Browser 服務的存取

MSOLAP$InstanceName 在服務啟動時,會建立 Analysis Services 具名執行個體的動態通訊埠指派。此服務預設會宣告所找到的第一個可用通訊埠編號,而且每次重新啟動服務時,都會使用不同的通訊埠編號。

執行個體名稱解析是由 SQL Server Browser 服務處理。如果您要搭配具名執行個體使用動態通訊埠指派,則一律需要解除封鎖 SQL Server Browser 服務的 TCP 通訊埠 2382。

[!附註]

SQL Server Browser 服務會針對 Database Engine 和 Analysis Services,分別接聽 UDP 通訊埠 1434 和 TCP 通訊埠 2382。即使您已經解除封鎖 UDP 通訊埠 1434 供 SQL Server Browser 服務使用,仍然必須解除封鎖 TCP 通訊埠 2382 供 Analysis Services 使用。

具有進階安全性的 Windows 防火牆

  1. 在 Windows 7 或 Windows Vista 的 [控制台] 中,按一下 [系統及安全性]、選取 [Windows 防火牆],然後按一下 [進階設定]。在 Windows Server 2008 或 2008 R2 上,開啟 [系統管理工具],然後按一下 [具有進階安全性的 Windows 防火牆]

  2. 若要解除封鎖 SQL Server Browser 服務的存取權限,請以滑鼠右鍵按一下 [輸入規則],然後選取 [新增規則]

  3. 在 [規則類型] 中,按一下 [連接埠],然後按 [下一步]

  4. 在 [通訊協定及連接埠] 中,選取 [TCP],然後在 [特定本機連接埠] 中輸入 2382。

  5. 在 [動作] 中,按一下 [允許連線],然後按 [下一步]

  6. 在 [設定檔] 中,清除任何不適用的網路位置,然後按 [下一步]

  7. 在 [名稱] 中,輸入此規則的描述性名稱 (例如 SQL Server Browser Service (tcp-in) 2382),然後按一下 [完成]

  8. 若要確認已啟用遠端連接,請在不同的電腦上開啟 SQL Server Management Studio 或 Excel,然後使用 <伺服器名稱>\<執行個體名稱> 格式指定伺服器的網路名稱和執行個體名稱,以連接至 Analysis Services。例如,在名稱為 AW-SRV01 且具有 Finance 具名執行個體的伺服器上,伺服器名稱為 AW-SRV01\Finance。

選項 2:針對具名執行個體使用固定通訊埠

或者,您也可以指派固定通訊埠,然後解除封鎖對該通訊埠的存取權限。與允許存取程式可執行檔的方法相比,這種方法提供更佳的稽核功能。因此,在存取任何 Analysis Services 執行個體時,建議您使用固定通訊埠的方法。

若要指派固定通訊埠,請依照本主題中<Use a fixed port for a default or named instance of Analysis Services>的指示進行,然後返回本節解除封鎖通訊埠。

具有進階安全性的 Windows 防火牆

  1. 在 Windows 7 或 Windows Vista 的 [控制台] 中,按一下 [系統及安全性]、選取 [Windows 防火牆],然後按一下 [進階設定]。在 Windows Server 2008 或 2008 R2 上,開啟 [系統管理工具],然後按一下 [具有進階安全性的 Windows 防火牆]

  2. 若要解除封鎖 Analysis Services 的存取權限,請以滑鼠右鍵按一下 [輸入規則],然後選取 [新增規則]

  3. 在 [規則類型] 中,按一下 [連接埠],然後按 [下一步]

  4. 在 [通訊協定及連接埠] 中選取 [TCP],然後在 [特定本機連接埠] 中輸入固定通訊埠編號。

  5. 在 [動作] 中,按一下 [允許連線],然後按 [下一步]

  6. 在 [設定檔] 中,清除任何不適用的網路位置,然後按 [下一步]

  7. 在 [名稱] 中,輸入此規則的描述性名稱 (例如 SQL Server Analysis Services on port 54321),然後按一下 [完成]

  8. 若要確認已啟用遠端連接,請在不同的電腦上開啟 SQL Server Management Studio 或 Excel,然後使用 <伺服器名稱>:<通訊埠編號> 格式指定伺服器的網路名稱和通訊埠編號,以連接至 Analysis Services。

Netsh AdvFirewall 語法

  • 下列命令會建立輸入規則,解除封鎖 SQL Server Browser 服務所使用的 TCP 2382,然後解除封鎖您針對 Analysis Services 執行個體指定的固定通訊埠。您可以執行任一個命令來允許對 Analysis Services 具名執行個體的存取。

    在此範例命令中,通訊埠 54321 是固定通訊埠。請務必以您系統所使用的實際通訊埠加以取代。

    netsh advfirewall firewall add rule name="SQL Server Analysis Services (tcp-in) on 54321" dir=in action=allow protocol=TCP localport=54321 profile=domain
    
    netsh advfirewall firewall add rule name="SQL Server Browser Services inbound on TCP 2382" dir=in action=allow protocol=TCP localport=2382 profile=domain
    

針對 Analysis Services 的預設或具名執行個體使用固定通訊埠

本節說明如何將 Analysis Services 設定為接聽固定通訊埠。如果您將 Analysis Services 當做具名執行個體安裝,通常使用固定通訊埠,但是如果商務或安全性需求指定您使用非預設的通訊埠指派,也可以使用此方法。

請注意,使用固定通訊埠時,您必須將通訊埠編號附加至伺服器名稱,以變更預設執行個體的連接語法。例如,在 SQL Server Management Studio 中連接到接聽通訊埠 54321 的本機預設 Analysis Services 執行個體時,您必須在 Management Studio 的 [連接到伺服器] 對話方塊中輸入 localhost:54321 做為伺服器名稱。

如果您是使用具名執行個體,即可指派固定通訊埠,而不必變更指定伺服器名稱的方式 (具體而言,您可以使用 <伺服器名稱\執行個體名稱> 連接到接聽固定通訊埠的具名執行個體)。只有在 SQL Server Browser 服務正在執行,而且您已經解除封鎖所接聽之通訊埠時,這才有作用。SQL Server Browser 服務將根據 <伺服器名稱\執行個體名稱> 來提供指向固定通訊埠的重新導向。只要您開啟通訊埠供 SQL Server Browser 服務和接聽固定通訊埠的 Analysis Services 具名執行個體使用,SQL Server Browser 服務就會將連線解析為具名執行個體。

  1. 決定要使用的可用 TCP/IP 連接埠。

    若要檢視您應該避免使用的已保留和已註冊連接埠清單,請參閱連接埠編號 (IANA)。若要檢視系統已經使用的連接埠清單,請開啟命令提示字元視窗,然後輸入 netstat –a –p TCP,即可顯示系統已開啟的 TCP 連接埠清單。

  2. 決定要使用的連接埠之後,請在 msmdsrv.ini 檔案中或在 SQL Server Management Studio 之 Analysis Services 執行個體的 [一般屬性] 頁面中編輯 Port 組態設定,藉以指定連接埠。

  3. 重新啟動服務。

  4. 將 Windows 防火牆設定為解除封鎖您所指定的 TCP 連接埠。或者,如果您要針對具名執行個體使用固定連接埠,請同時解除封鎖您針對該執行個體指定的 TCP 連接埠以及 SQL Server Browser 服務的 TCP 連接埠 2382。

  5. 先從本機連接 (在 Management Studio 中),然後從另一部電腦的用戶端應用程式遠端連接,藉以確認連接。若要使用 Management Studio,請使用 <servername>:<portnumber> 的格式來指定伺服器名稱,以便連接至 Analysis Services 預設執行個體。若為具名執行個體,請將伺服器名稱指定為 <伺服器名稱>\<執行個體名稱>。

Analysis Services 叢集的通訊埠組態

在配備多個網路卡的電腦上,Analysis Services 會使用您指定的通訊埠接聽所有 IP 位址。在叢集執行個體上,Analysis Services 只會接聽 TCP 通訊埠 2383 上叢集群組的所有 IP 位址。您無法指定其他固定通訊埠供叢集執行個體使用。

PowerPivot for SharePoint 的通訊埠組態

如果您是安裝 PowerPivot for SharePoint,就不必開啟 Windows 防火牆中的通訊埠。在安裝 PowerPivot for SharePoint 時,PowerPivot 系統服務會獨佔使用在相同電腦上一併安裝的本機 SQL Server Analysis Services (PowerPivot) 服務執行個體。PowerPivot 系統服務會使用本機連線 (而非網路連線) 存取本機 Analysis Services 引擎服務,而該服務會載入、查詢及處理 SharePoint 伺服器上的 PowerPivot 資料。若要從用戶端應用程式要求 PowerPivot 資料,這些要求會透過 SharePoint 安裝程式所開啟的通訊埠來傳送 (具體而言,是定義輸入規則以允許存取 SharePoint – 80、SharePoint 管理中心 v4、SharePoint Web 服務和 SPUserCodeV4)。由於 PowerPivot Web 服務是在 SharePoint 伺服陣列中執行,因此要遠端存取 SharePoint 伺服陣列中的 PowerPivot 資料,使用 SharePoint 防火牆規則已經足夠。