为 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 防火墙设置的详细信息,以及影响数据库引擎、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 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 服务器:<IP 地址>:<端口号>。

尽管应用程序可能在侦听某一特定端口,但如果防火墙正在阻止访问,则连接将不会成功。为了实现与某一命名 Analysis Services 实例的连接,您必须取消阻止对 msmdsrv.exe 或者该实例在防火墙中所侦听的固定端口的访问。本主题中的其余部分将说明如何取消阻止。

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

请注意,对于 Analysis Services 服务器,必须手动定义所有防火墙例外。尽管 Analysis Services 保留端口 2382 和 2383,但 SQL Server 安装程序以及任何配置工具都不会为您定义允许访问这些端口或程序可执行文件的防火墙规则。

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

Analysis Services 的默认实例侦听 TCP 端口 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 服务分别为数据库引擎和 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 防火墙”**。

  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。例如,在具有 Finance 的命名实例的名为 AW-SRV01 的服务器上,服务器名为 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,请通过按以下格式指定服务器名来连接到 Analysis Services 默认实例:<服务器名>:<端口号>。对于命名实例,请将服务器名指定为 <服务器名>\<实例名>

Analysis Services 群集的端口配置

在具有多个网卡的计算机上,Analysis Services 使用您指定的端口侦听所有 IP 地址。在群集实例上,Analysis Services 将侦听群集组的所有 IP 地址,但仅侦听 TCP 端口 2383。您不能为群集实例指定替代的固定端口。

PowerPivot for SharePoint 的端口配置

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