将 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 时,打开 TCP 端口 2382 以支持 Power Pivot for SharePoint 2013。 在 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 服务使用非默认端口。 有关详细信息,请查看在 固定端口上侦听 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 防火墙设置的详细信息以及有关影响数据库引擎、Analysis Services、Reporting Services 和 Integration Services 的 TCP 端口的说明,请参阅 配置 Windows 防火墙以允许 SQL Server 访问

检查 Analysis Services 的端口和防火墙设置。

在 SQL Server 2017 支持的 Microsoft Windows 操作系统上,Windows 防火墙默认处于打开状态,并阻止远程连接。 必须手动在防火墙中开放某一端口,以便允许对 Analysis Services 的入站请求。 SQL Server 安装程序不自动为您执行此步骤。

在 msmdsrv.ini file 文件以及 SQL Server Management Studio 的 Analysis Services 实例的“常规”属性页中,指定端口设置。 如果 Port 设置为某个正整数,则该服务正在侦听某个固定端口。 如果 Port 设置为 0,则该服务正在侦听端口 2383(如果该服务是默认实例)或动态分配的端口(如果该服务是命名实例)。

动态端口分配仅由命名实例使用。 MSOLAP$InstanceName 服务确定在它启动时要使用的端口。 您可以通过执行以下操作确定某一命名实例正在使用的实际端口号:

  • 启动任务管理器,然后单击 “服务” 以便获取 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,并通过在“服务器名称”中指定服务器的网络名称连接到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 服务分别为数据库引擎和 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>。 例如,在具有 Finance 的命名实例的名为 AW-SRV01 的服务器上,服务器名称为 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. 在“名称”中,键入此规则的说明性名称(例如 SQL Server Analysis Services on port 54321),然后单击“完成”

  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 文件中或者在 SQL Server Management Studio 的 Analysis Services 实例的“常规属性”页中编辑 Port 配置设置,指定该端口。

  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,无论它是作为默认实例还是命名实例安装。 在 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 服务(数据库引擎和 SSAS)
启动、停止、暂停、继续、重新启动数据库引擎、SQL Server 代理或 SQL Server Browser 服务
为数据库引擎访问配置 Windows 防火墙