配置 Windows 防火墙以允许 Analysis Services 访问

使 Analysis Services 或 PowerPivot for SharePoint 在网络上可用的关键第一步是确定是否需要取消阻止防火墙中的端口。 大多数安装都需要创建至少一个允许连接到 Analysis Services 的绑定防火墙规则。

防火墙配置要求因安装 Analysis Services 的方式而异:

  • 安装默认实例或创建 Analysis Services 故障转移群集时打开 TCP 端口 2383。

  • 安装命名实例时打开 TCP 端口 2382。 命名实例使用动态端口分配。 作为 Analysis Services 的发现服务,SQL Server Browser 服务侦听 TCP 端口 2382,并将连接请求重定向到 Analysis Services 当前使用的端口。

  • 在 SharePoint 模式下安装 Analysis Services 以支持 PowerPivot for SharePoint 2013 时打开 TCP 端口 2382。 在 PowerPivot for SharePoint 2013 中,Analysis Services 实例在 SharePoint 外部。 对命名的“PowerPivot”实例的入站请求源自通过网络连接的 SharePoint Web 应用程序,需要打开端口。 与其他 Analysis Services 命名实例一样,在 TCP 2382 上为 SQL Server Browser 服务创建入站规则,以允许访问 PowerPivot for SharePoint。

  • 对于 PowerPivot for SharePoint 2010,请勿在 Windows 防火墙中打开端口。 作为 SharePoint 的加载项,该服务使用为 SharePoint 配置的端口,并且仅与加载和查询 PowerPivot 数据模型的 Analysis Services 实例建立本地连接。

  • 对于在 Azure 虚拟机上运行的 Analysis Services 实例,请使用备用说明来配置服务器访问。 请参阅 Azure 虚拟机中的 SQL Server 商业智能

尽管 Analysis Services 的默认实例侦听 TCP 端口 2383,但可以将服务器配置为侦听其他固定端口,并采用以下格式连接到服务器: <servername>:<portnumber>。

Analysis Services 实例只能使用一个 TCP 端口。 在具有多个网卡或多个 IP 地址的计算机上,Analysis Services 在一个 TCP 端口上侦听分配给计算机或别名的所有 IP 地址。 如果你有特定的多端口要求,请考虑配置 Analysis Services 以便进行 HTTP 访问。 然后,可以在选择的任何端口上设置多个 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 2014 支持的 Microsoft Windows作系统上,Windows 防火墙默认处于打开状态,并阻止远程连接。 必须在防火墙中手动打开端口,以允许对 Analysis Services 发出入站请求。 SQL Server 安装程序不会为你执行此步骤。

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

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

  • 启动任务管理器,然后单击“服务”获取 PID。MSOLAP$InstanceName

  • 从命令行运行 netstat -ao -p TCP 以查看该 PID 的 TCP 端口信息。

  • 使用 SQL Server Management Studio 验证端口,并按以下格式连接到 Analysis Services 服务器: <IPAddress>:<portnumber>。

尽管应用程序可能正在侦听特定端口,但如果防火墙阻止访问,则连接不会成功。 要连接到命名的 Analysis Services 实例,必须解除防火墙中对 msmdsrv.exe 或正在侦听的固定端口的访问限制。 本主题中的其余部分提供了有关如何执行此操作的说明。

若要检查是否已为 Analysis Services 定义防火墙设置,请在控制面板中使用具有高级安全性的 Windows 防火墙。 “监视”文件夹中的“防火墙”页显示为本地服务器定义的规则的完整列表。

请注意,对于 Analysis Services,必须手动定义所有防火墙规则。 尽管 Analysis Services 和 SQL Server Browser 保留端口 2382 和 2383,但 SQL Server 安装程序和任何配置工具都未定义允许访问端口或程序可执行文件的防火墙规则。

为 Analysis Services 的默认实例配置 Windows 防火墙

Analysis Services 的默认实例侦听 TCP 端口 2383。 如果安装了默认实例并想要使用此端口,则只需在 Windows 防火墙中取消阻止对 TCP 端口 2383 的入站访问,以启用对 Analysis Services 默认实例的远程访问。 如果安装了默认实例,但想要将服务配置为侦听固定端口,请参阅本主题中 Analysis Services 的默认或命名实例的固定端口

若要验证服务是否作为默认实例(MSSQLServerOLAPService)运行,请检查 SQL Server Configuration Manager 中的服务名称。 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. 在规则类型中,单击 Port 并单击“ 下一步”。

  4. 在“协议和端口”中,选择“TCP”,然后键入2383“特定本地端口”。

  5. 在“操作”中,单击允许连接,然后单击下一步

  6. 在配置文件中,清除不应用的任何网络位置,然后单击“ 下一步”。

  7. 在“名称”中,键入此规则的描述性名称(例如), SQL Server Analysis Services (tcp-in) 2383然后单击“ 完成”。

  8. 若要验证是否启用了远程连接,请在其他计算机上打开 SQL Server Management Studio 或 Excel,并通过在 服务器名称中指定服务器的网络名称连接到 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 防火墙访问

Analysis Services 的命名实例可以侦听固定端口或动态分配的端口,而 SQL Server Browser 服务在连接时提供当前的连接信息。

SQL Server Browser 服务侦听 TCP 端口 2382。 不使用 UDP。 TCP 是 Analysis Services 使用的唯一传输协议。

选择以下方法之一,启用对 Analysis Services 命名实例的远程访问:

  • 使用动态端口分配和 SQL Server 浏览器服务。 取消阻止 Windows 防火墙中 SQL Server 浏览器服务使用的端口。 以以下格式连接到服务器: <servername>\<instancename>。

  • 将固定端口和 SQL Server 浏览器服务一起使用。 此方法允许你使用此格式进行连接: <servername>\<instancename>,与动态端口分配方法相同,但在这种情况下,服务器侦听固定端口。 在此方案中,SQL Server 浏览器服务为侦听固定端口的 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 浏览器服务处理。 如果对命名实例使用动态端口分配,则始终需要取消阻止 SQL Server Browser 服务的 TCP 端口 2382。

注释

SQL Server Browser 服务侦听两个端口:数据库引擎使用 UDP 端口 1434,Analysis Services 使用 TCP 端口 2382。 即使已为 SQL Server 浏览器服务取消阻止 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. 在规则类型中,单击 Port 并单击“ 下一步”。

  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 防火墙

  2. 若要取消阻止对 Analysis Services 的访问,请右键单击“ 入站规则 ”,然后选择“ 新建规则”。

  3. 在规则类型中,单击 Port 并单击“ 下一步”。

  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 安装为命名实例,则使用固定端口很常见,但如果业务或安全要求指定使用非默认端口分配,也可以使用此方法。

请注意,使用固定端口会通过要求将端口号追加到服务器名称来更改默认实例的连接语法。 例如,在 Microsoft 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 群集的端口配置

Analysis Services 故障转移群集始终侦听 TCP 端口 2383,无论你是将其安装为默认实例还是命名实例。 Analysis Services 在安装在 Windows 故障转移群集时, 不使用动态端口分配。 请确保在群集中运行 Analysis Services 的每个节点上打开 TCP 2383。 有关 Analysis Services 群集的详细信息,请参阅 如何群集 SQL Server Analysis Services

PowerPivot for SharePoint 的端口配置

PowerPivot for SharePoint 的服务器体系结构与所使用的 SharePoint 版本基本不同。

SharePoint 2013

在 SharePoint 2013 中,Excel Services 将重定向对 Power Pivot 数据模型的请求,这些模型随后在 SharePoint 环境外部的 Analysis Services 实例上加载。 连接遵循典型模式,其中本地计算机上的 Analysis Services 客户端库将连接请求发送到同一网络中远程 Analysis Services 实例。

由于 PowerPivot for SharePoint 始终将 Analysis Services 安装为命名实例,因此应假定 SQL Server Browser 服务和动态端口分配。 如前所述,SQL Server Browser 服务侦听 TCP 端口 2382 中发送到 Analysis Services 命名实例的连接请求,并将请求重定向到当前端口。

请注意,SharePoint 2013 中的 Excel Services 不支持固定端口连接语法,因此请确保 SQL Server Browser 服务可访问。

SharePoint 2010

如果使用 SharePoint 2010,则无需在 Windows 防火墙中打开端口。 SharePoint 将打开所需的端口,以及 PowerPivot for SharePoint 等加载项在 SharePoint 环境中运行。 在 PowerPivot for SharePoint 2010 安装中,PowerPivot 系统服务独占使用同一台计算机上安装的本地 SQL Server Analysis Services (PowerPivot) 服务实例。 它使用本地连接而不是网络连接来访问本地 Analysis Services 引擎服务,该服务加载、查询和处理 SharePoint 服务器上的 PowerPivot 数据。 若要从客户端应用程序请求 PowerPivot 数据,请求通过 SharePoint 安装程序打开的端口进行路由(具体而言,定义了入站规则以允许访问 SharePoint - 80、SharePoint 管理中心 v4、SharePoint Web Services 和 SPUserCodeV4)。 由于 PowerPivot Web 服务在 SharePoint 场中运行,因此 SharePoint 防火墙规则足以远程访问 SharePoint 场中的 PowerPivot 数据。

另请参阅

SQL Server Browser 服务(数据库引擎和 SSAS)
启动、停止、暂停、继续、重新启动数据库引擎、SQL Server 代理或 SQL Server Browser 服务
为数据库引擎访问配置 Windows 防火墙