我正在尝试配置 SSRS 实例,但收效甚微。
我已在服务器 DWHFRONT 上安装了 SSRS。它在网络服务凭据下运行。在 Reporting Services 配置管理器的“数据库”选项卡上,我将其设置为使用 DWHBACK 上的数据库,该数据库已成功创建。连接使用域帐户 DOM\SA_DWH。我已为 DOM\SA_DWH 添加了到服务器 DWHBACK 的登录名,并且我可以看到 Reporting Services Manager 添加了对 SSRS 数据库的授权。配置管理器接受这些连接参数。
但是(在设置 URL、虚拟目录等之后)如果我访问 DWHFRONT/Reports/ 的 URL,我会收到一条错误消息:
服务不可用。
报表服务器配置不正确。请联系您的系统管理员来解决该问题。系统管理员:报表服务器无法连接到其数据库,因为它没有这样做的权限。使用 Reporting Services 配置管理器更新报表服务器数据库凭据。
起初我认为这可能是一个问题,因为尚未部署到 SSRS 实例。然而,当我尝试部署某些内容时,我在 BIDS 中收到此错误:
报表服务器无法打开与报表服务器数据库的连接。所有请求和处理都需要与数据库的连接。 ---> Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: 报表服务器无法打开与报表服务器数据库的连接。所有请求和处理都需要与数据库的连接。 (微软.ReportingServices.Designer)
您可以执行以下测试来检查它能否解决您的问题吗?:
附注我们在网络服务凭据下运行最新版本的 SSRS 时遇到问题..
这听起来很像“双跳”问题。
这可以通过在 Reporting Services 实例上启用远程错误来确认。然后,当您连接到报告门户时,您应该会看到原始错误以及“用户 NTAUTHORITY\ANONYMOUS LOGON 登录失败”。如果是这样,那么这很可能是 Kerberos 委派问题。
当您将 SSRS 服务和目标数据库托管在不同的服务器上时,您几乎总是会遇到“双跳”问题,这将需要配置 Kerberos 委派以使 SSRS 能够重用用户凭据来跨服务器访问数据库.
Pinal Dave 在 SQL Server 的背景下写了一篇关于此的精彩博客。
要启用委派,您首先需要确保正确配置 SPN。 Here 是一个很好的实用程序来帮助解决这个问题。我将在您的 SSRS 服务器和数据库服务器上运行此命令,以确保两台服务器的 SPN 均配置正确。
配置 SPN 后,您需要在 Active Directory 中“启用委派”。这需要为您的 DOM\SA_DWH 帐户完成。
域帐户 SA_DWH 被禁止交互式登录。 SSRS 显然确实需要这样做。交互式登录限制已解除,现在可以使用了。
为了解决该问题,我执行了以下步骤。
转到配置管理器上的数据库选项卡,单击“更改数据库”并继续执行步骤。这会将正确的数据库角色分配给服务帐户。