設定 Windows 防火牆以允許 Analysis Services 存取

適用于:SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

在網路上提供SQL Server Analysis Services或 Power Pivot for SharePoint 的一個重要步驟是判斷是否需要解除封鎖防火牆中的埠。 大部分安裝都需要您至少建立一個內嵌防火牆規則,以允許連線SQL Server Analysis Services。

防火牆設定需求會視您安裝的方式而有所不同SQL Server Analysis Services:

  • 安裝預設實例或建立SQL Server Analysis Services容錯移轉叢集時,開啟 TCP 埠 2383。

  • 安裝具名執行個體時,開啟 TCP 通訊埠 2382。 具名執行個體使用動態通訊埠指派。 作為 Analysis Services 的探索服務,SQL Server Browser 服務接聽 TCP 埠 2382,並將連線要求重新導向至目前SQL Server Analysis Services所使用的埠。

  • 在 SharePoint 模式中安裝SQL Server Analysis Services以支援 Power Pivot for SharePoint 2013 時,開啟 TCP 埠 2382。 在 Power Pivot for SharePoint 2013 中,SQL Server Analysis Services實例位於 SharePoint 外部。 對具名 'Power Pivot' 實例的輸入要求來自透過網路連線的 SharePoint Web 應用程式,需要開啟的埠。 如同其他SQL Server Analysis Services具名實例,在 TCP 2382 上建立 SQL Server Browser 服務的輸入規則,以允許存取 Power Pivot for SharePoint。

  • 針對 Power Pivot for SharePoint 2010,請勿在 Windows 防火牆中開啟埠。 作為 SharePoint 的增益集,服務會使用針對 SharePoint 設定的埠,並只對載入和查詢 Power Pivot 資料模型的SQL Server Analysis Services實例進行本機連線。

  • 針對在 Windows Azure 虛擬機器上執行的SQL Server Analysis Services實例,請使用替代指示來設定伺服器存取。 請參閱 Azure 虛擬機器中的 SQL Server Business Intelligence

雖然預設的實例SQL Server Analysis Services接聽 TCP 埠 2383,但您可以設定伺服器接聽不同的固定埠,以下列格式連線到伺服器: < servername > : < portnumber > 。

注意

如果您需要使用 Kerberos 連線到實例,則無法使用 Analysis Services 的非預設埠。 如需詳細資訊,請檢閱 接聽固定埠之 SSAS 實例的 SPN 註冊

SQL Server Analysis Services 實例只能使用一個 TCP 埠。 在具有多個網路卡或多個 IP 位址的電腦上,SQL Server Analysis Services接聽一個 TCP 通訊埠,以取得指派或別名給電腦的所有 IP 位址。 如果您有特定的多埠需求,請考慮設定 HTTP 存取SQL Server Analysis Services。 如此一來,您就可以將多個 HTTP 端點設定在所選擇的通訊埠。 請參閱 在 Internet Information Services (IIS) 8.0 上設定 Analysis Services 的 HTTP 存取

本主題包含下列幾節:

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

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

在 SQL Server 2017 支援的 Microsoft Windows 作業系統上,Windows 防火牆預設為開啟,並封鎖遠端連線。 您必須手動在防火牆中開啟通訊埠,允許傳入要求至 Analysis Services。 SQL Server 安裝程式不會為您執行此步驟。

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

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

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

  • 從命令列執行 netstat -ao -p TCP ,以檢視該 PID 的 TCP 埠資訊。

  • 使用 SQL Server Management Studio 並聯機到 Analysis Services 伺服器,以下列格式確認埠: < IPAddress > : < portnumber > 。

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

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

請注意,對於 SQL Server Analysis Services,所有防火牆規則都必須手動定義。 雖然 SQL Server Analysis Services 和 SQL Server Browser 保留埠 2382 和 2383,但SQL Server安裝程式或任何組態工具都不會定義允許存取埠或程式可執行檔的防火牆規則。

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

SQL Server Analysis Services的預設實例會在 TCP 埠 2383 上接聽。 如果您已安裝預設實例並想要使用此埠,您只需要解除封鎖 Windows 防火牆中 TCP 埠 2383 的輸入存取,才能啟用預設實例的遠端存取SQL Server Analysis Services。 如果您安裝了預設執行個體,但要將服務設定為接聽固定連接埠,請參閱本主題中的 針對 Analysis Services 的預設或具名執行個體使用固定連接埠

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

注意

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

指定輸入規則時所使用的命名慣例,必須方便您日後能夠輕易地找到規則 (例如 SQL Server Analysis Services (TCP-in) 2383)。

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

  1. 在 Windows 7 或 Windows Vista 的 [控制台] 中按一下 [系統及安全性],然後選取 [Windows 防火牆],再按一下 [進階設定]。 在 Windows Server 2008 或 2008 R2,開啟 [系統管理工具],然後按一下 [具有進階安全性的 Windows 防火牆]。 在 Windows Server 2012 上,開啟 [應用程式] 頁面並輸入 Windows Firewall

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

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

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

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

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

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

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

    注意

    您必須先授與其他使用者此伺服器的權限,才可存取此伺服器。 如需詳細資訊,請參閱 (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 防火牆存取

SQL Server Analysis Services的具名實例可以在固定埠或動態指派的埠上接聽,其中 SQL Server Browser 服務會在連線時為服務提供目前連線資訊。

SQL Server Browser 服務會接聽 TCP 通訊埠 2382。 不使用 UDP。 TCP 是唯一SQL Server Analysis Services使用的傳輸通訊協定。

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

  • 使用動態通訊埠指派與 SQL Server Browser 服務。 在 Windows 防火牆中解除封鎖 SQL Server Browser 服務所使用的通訊埠。 以下列格式連線到伺服器: < servername > \ < instancename > 。

  • 使用固定通訊埠與 SQL Server Browser 服務。 此方法可讓您使用此格式進行連線: < servername > \ < instancename > ,與動態埠指派方法相同,但在此情況下,伺服器會接聽固定埠。 在此情況下,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 服務會分別在 UDP 通訊埠 1434 和 TCP 通訊埠 2382 接聽 Database Engine 和 Analysis Services。 即使您已經解除封鎖 UDP 通訊埠 1434 供 SQL Server Browser 服務使用,仍然必須解除封鎖 TCP 通訊埠 2382 供 Analysis Services 使用。

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

  1. 在 Windows 7 或 Windows Vista 的 [控制台] 中按一下 [系統及安全性],然後選取 [Windows 防火牆],再按一下 [進階設定]。 在 Windows Server 2008 或 2008 R2,開啟 [系統管理工具],然後按一下 [具有進階安全性的 Windows 防火牆]。 在 Windows Server 2012 上,開啟 [應用程式] 頁面並輸入 Windows Firewall

  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: < servername > \ < instancename > 。 例如,在名稱為 AW-SRV01 且具有 Finance 具名執行個體的伺服器上,伺服器名稱為 AW-SRV01\Finance

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

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

若要指派固定連接埠,請遵循本主題 針對 Analysis Services 的預設或具名執行個體使用固定連接埠 中的指示操作,再回到本節解除封鎖連接埠。

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

  1. 在 Windows 7 或 Windows Vista 的 [控制台] 中按一下 [系統及安全性],然後選取 [Windows 防火牆],再按一下 [進階設定]。 在 Windows Server 2008 或 2008 R2,開啟 [系統管理工具],然後按一下 [具有進階安全性的 Windows 防火牆]。 在 Windows Server 2012 上,開啟 [應用程式] 頁面並輸入 Windows Firewall

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

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

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

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

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

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

  8. 若要確認已啟用遠端連線,請在不同的電腦上開啟 SQL Server Management Studio 或 Excel,並指定伺服器的網路名稱,並以下列格式連接到 Analysis Services: < servername > : < portnumber > 。

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 做為伺服器名稱。

如果您使用具名實例,您可以指派固定埠,而不需變更您特別指定伺服器名稱 (的方式,您可以使用 < servername\instancename > 連線到接聽固定埠) 的具名實例。 SQL Server Browser 服務必須在執行中,才可解除對其所接聽之通訊埠的封鎖。 SQL Server Browser 服務會根據 < servername\instancename > 提供固定埠的重新導向。 只要您開啟通訊埠供 SQL Server Browser 服務和接聽固定通訊埠的 Analysis Services 具名執行個體使用,SQL Server Browser 服務就會將連線解析為具名執行個體。

  1. 決定可供使用的 TCP/IP 通訊埠。

    若要檢視您應該避免使用的保留與已註冊連接埠清單,請參閱 Port Numbers (IANA)(連接埠號碼 (IANA))。 若要檢視系統上已使用的埠清單,請開啟命令提示字元視窗並輸入 netstat -a -p TCP 以顯示系統上開啟的 TCP 埠清單。

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

  3. 重新啟動服務。

  4. 設定 Windows 防火牆,解除封鎖您指定的 TCP 通訊埠。 如果您要讓具名執行個體使用固定通訊埠,請解除封鎖您指定的 TCP 通訊埠讓該執行個體使用,以及解除封鎖 TCP 通訊埠 2382 供 SQL Server Browser 服務使用。

  5. 以本機方式連接 (在 Management Studio 中),然後從其他電腦上的用戶端應用程式以遠端方式連接,確認上述通訊埠是否已開啟。 若要使用 Management Studio,請以下列格式指定伺服器名稱,以連線到 Analysis Services 預設實例: < servername > : < portnumber > 。 針對具名實例,請將伺服器名稱指定為 < servername > \ < instancename > 。

Analysis Services 叢集的通訊埠組態

不論您將其安裝為預設實例還是具名實例,SQL Server Analysis Services容錯移轉叢集一律會在 TCP 埠 2383 上接聽。 在 Windows 容錯移轉叢集上安裝動態埠指派時,SQL Server Analysis Services不會使用動態埠指派。 請務必在叢集中執行SQL Server Analysis Services的每個節點上開啟 TCP 2383。 如需叢集SQL Server Analysis Services的詳細資訊,請參閱如何叢集SQL Server Analysis Services

Power Pivot for SharePoint 的通訊埠組態

Power Pivot for SharePoint 的伺服器架構基本上會根據您使用的 SharePoint 版本而有所不同。

SharePoint 2013

在 SharePoint 2013 中,Excel Services會重新導向 Power Pivot 資料模型的要求,這些要求隨後會載入 SharePoint 環境外部的SQL Server Analysis Services實例上。 連線遵循一般模式,其中本機電腦上的 Analysis Services 用戶端程式庫會將連線要求傳送至相同網路中遠端SQL Server Analysis Services實例。

由於 Power Pivot for SharePoint 一律會將SQL Server Analysis Services安裝為具名實例,因此您應該假設SQL Server Browser 服務和動態埠指派。 如先前所述,SQL Server Browser 服務會接聽 TCP 埠 2382 上傳送至SQL Server Analysis Services具名實例的連接要求,並將要求重新導向至目前的埠。

請注意,SharePoint 2013 中的 Excel Services 不支援固定通訊埠連接語法,因此請確定可以存取 SQL Server Browser 服務。

SharePoint 2010

如果您是使用 SharePoint 2010,就不必開啟 Windows 防火牆中的通訊埠。 SharePoint 會開啟所需的埠,而 Power Pivot for SharePoint 之類的增益集會在 SharePoint 環境中運作。 在 Power Pivot for SharePoint 2010 安裝中,Power Pivot 系統服務會獨佔使用在同一部電腦上安裝的本機SQL Server Analysis Services ( Power Pivot) 服務實例。 它會使用本機連線而非網路連線來存取本機 Analysis Services 引擎服務,以載入、查詢及處理 SharePoint 伺服器上的 Power Pivot 資料。 若要向用戶端應用程式要求 Power Pivot 資料,要求會透過 SharePoint 安裝程式 (所開啟的埠路由傳送,具體來說,輸入規則會定義為允許存取 SharePoint - 80、SharePoint 管理中心 v4、SharePoint Web Services 和 SPUserCodeV4) 。 因為 Power Pivot Web 服務是在 SharePoint 伺服器陣列內執行,所以 SharePoint 防火牆規則就足以遠端存取 SharePoint 伺服器陣列中的 Power Pivot 資料。

另請參閱

SQL Server Browser 服務 (Database Engine 和 SSAS)
啟動、停止、暫停、繼續、重新啟動 Database Engine、SQL Server Agent 或 SQL Server Browser 服務
設定用於 Database Engine 存取的 Windows 防火牆