共用方式為


設定 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 實例,請使用替代指示來設定伺服器存取。 請參閱 Windows Azure 虛擬機中的 SQL Server 商業智慧

雖然 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位址。 如果您有特定的多埠需求,請考慮設定 SQL Server Analysis Services 以進行 HTTP 存取。 然後,您可以在您選擇的任何埠上設定多個 HTTP 端點。 請參閱 在 Internet Information Services 上設定 Analysis Services 的 HTTP 存取權 (IIS) 8.0

本主題包含下列各節:

如需預設 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,如果它是預設實例,或是在動態指派的埠上,如果是具名實例。

動態埠指派只能由具名實例使用。 MSOLAP$InstanceName 服務會決定啟動時要使用的埠。 您可以執行下列動作來判斷具名實例使用中的實際埠號碼:

  • 啟動 [任務管理器],然後按兩下 [Services],以取得 MSOLAP$InstanceName的 PID。

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

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

雖然應用程式可能會在特定埠上接聽,但如果防火牆封鎖存取,連線將無法成功。 若要連線到具名 Analysis Services 實例,您必須解除封鎖存取 msmdsrv.exe 或其正在防火牆中接聽的固定埠。 本主題中的其餘各節會提供執行此動作的指示。

若要檢查是否已為 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 防火牆

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

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

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

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

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

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

  8. 若要確認已啟用遠端連線,請在不同的計算機上開啟 SQL Server Management Studio 或 Excel,並在 Server 名稱中指定伺服器的網路名稱,連接到 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 Service 會提供在固定埠上接聽之 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 服務的存取

Analysis Services 具名實例的動態埠指派是由服務啟動時 MSOLAP$InstanceName 所建立。 根據預設,服務會宣告它找到的第一個可用埠號碼,每次重新啟動服務時,都會使用不同的埠號碼。

實例名稱解析是由 SQL Server 瀏覽器服務處理。 如果您使用動態埠指派搭配具名實例,則一律需要解除封鎖 SQL Server Browser 服務的 TCP 連接埠 2382。

注意

SQL Server Browser 服務會分別接聽資料庫引擎和 Analysis Services 的 UDP 連接埠 1434 和 TCP 連接埠 2382。 即使您已經解除封鎖 SQL Server Browser 服務的 UDP 連接埠 1434,您仍必須解除封鎖 Analysis Services 的 TCP 連接埠 2382。

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

  1. 在 Windows 7 或 Windows Vista 的 [控制面板] 中,按兩下 [系統和安全性],選取 [Windows 防火牆],然後按兩下 [進階設定]。 在 Windows Server 2008 或 2008 R2 上,開啟 [系統管理員工具],然後按兩下 [具有進階安全性的 Windows 防火牆]。 在 Windows Server 2012 上,開啟 [應用程式] 頁面,然後輸入 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:<servername>\<instancename>。 例如,在名為 AW-SRV0 1 的伺服器上,具有 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 防火牆

  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 埠。

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

  2. 在您判斷要使用的埠之後,請編輯 msmdsrv.ini 檔案中的 Port 組態設定,或在 SQL Server Management Studio 中 Analysis Services 實例的 [一般屬性] 頁面中編輯埠來指定埠。

  3. 重新啟動服務。

  4. 設定 Windows 防火牆以解除封鎖您指定的 TCP 連接埠。 或者,如果您使用具名實例的固定埠,請將您為該實例指定的 TCP 連接埠和 SQL Server Browser 服務的 TCP 連接埠 2382 解除封鎖。

  5. 透過在本機連線(在 Management Studio 中),然後從另一部電腦上的用戶端應用程式遠端連線來驗證。 若要使用 Management Studio,請使用下列格式指定伺服器名稱來連線到 Analysis Services 預設實例:<servername>:<portnumber>。 針對具名實例,將伺服器名稱指定為 <servername>\<instancename>。

Analysis Services 叢集的埠設定

不論您是安裝為預設實例還是具名實例,SQL Server Analysis Services 故障轉移叢集一律會在 TCP 連接埠 2383 上接聽。 SQL Server Analysis Services 在 Windows 故障轉移叢集上安裝動態埠指派時,不會使用動態埠指派。 請務必在執行叢集中 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 Service (Database Engine 和 SSAS)
Start、Stop、Pause、Resume、Restart the Database Engine、SQL Server Agent 或 SQL Server Browser Service
設定適用於 Database Engine 存取的 Windows 防火牆