SSRS 加密密钥 - 初始化报表服务器

在 Reporting Services中,已初始化的服务器是指可以在报表服务器数据库中加密和解密数据的服务器。 初始化是一项必需的报表服务器操作。 初始化在报表服务器服务第一次启动时发生。 在将报表服务器联接到现有部署,或在恢复进程中手动重新创建密钥时也需要进行初始化。 有关使用加密密钥的方法和原因的详细信息,请参阅配置和管理加密密钥(报表服务器配置管理器)存储加密的报表服务器数据(报表服务器配置管理器)

加密密钥部分基于报表服务器服务的配置文件信息。 如果更改用于运行报表服务器服务的用户标识,则必须相应地更新密钥。 如果使用 Reporting Services 配置工具更改标识,将自动处理此步骤。

如果由于某些原因导致初始化失败,则报表服务器在响应用户和服务请求时将返回 RSReportServerNotActivated 错误。 这种情况下,可能需要排除系统或服务器配置故障。 若要了解详细信息,请参阅排查 Reporting Services 报表问题

初始化过程概述

初始化过程将创建并存储一个用于加密的对称密钥。 对称密钥由 Microsoft Windows 加密服务创建,随后由报表服务器服务用来加密和解密数据。 对称密钥本身通过非对称密钥进行加密。

以下步骤描述了初始化过程:

  1. 在初始启动时,报表服务器服务读取 RSReportServer.config 文件以获取安装标识符和数据库连接信息。

  2. 报表服务器服务从加密服务请求公钥。 Windows 创建私钥和公钥并将公钥发送到报表服务器服务。

  3. 报表服务器服务连接到报表服务器数据库并存储安装标识符和公钥值。

  4. 报表服务器服务再次调入加密服务,这次是请求对称密钥。 Windows 创建对称密钥。

  5. 报表服务器服务再次连接到报表服务器数据库,并将对称密钥添加到步骤 3 中存储的公钥和安装标识符值中。 在存储对称密钥之前,报表服务器服务使用其公钥对对称密钥进行加密。 存储对称密钥后,即可将报表服务器视为已初始化,并且可供使用。

针对扩展部署初始化报表服务器

Reporting Services 支持在多个报表服务器实例中共享单个报表服务器数据库的扩展部署模型。 若要联接扩展部署,报表服务器必须在共享数据库中创建并存储其对称密钥副本。 尽管使用该数据库的服务器都使用同一个对称密钥,但是每个报表服务器都有自己的密钥副本。 每个副本各不相同,因为这些副本都使用其各自拥有的公钥进行了唯一加密。

针对扩展部署初始化报表服务器的开始步骤与描述初始化单个服务器和数据库组合的前三个步骤相同。

扩展部署初始化过程的不同之处在于报表服务器获取对称密钥的方式。 在初始化第一个服务器时,它从 Windows 获取对称密钥。 在配置扩展部署的过程中,在初始化第二个服务器时,它将从已初始化的报表服务器服务中获取对称密钥。 第一个报表服务器实例使用第二个实例的公钥来为第二个报表服务器实例创建对称密钥的加密副本。 在此过程中的任何一点,对称密钥永远不会作为纯文本公开。

如何初始化报表服务器

注意

RSKeymgmt 是一种控制台应用程序,需要在托管扩展部署中已包含的报表服务器实例的计算机上从命令行运行。 运行该实用工具时,需要指定相关参数,以选择要初始化的远程报表服务器实例。

只有当安装标识符与公钥相匹配时,才会初始化报表服务器。 如果匹配成功,则创建允许可逆加密的对称密钥。 如果匹配失败,则将禁用报表服务器,在这种情况下,可能需要应用备份密钥;如果备份密钥不可用或无效,则可能需要删除加密数据。 有关报表服务器使用的加密密钥的详细信息,请参阅配置和管理加密密钥(报表服务器配置管理器)

注意

还可以使用 Reporting Services Windows Management Instrumentation (WMI) 提供程序以编程的方式初始化报表服务器。 有关详细信息,请参阅 访问 Reporting Services WMI 提供程序

如何确认报表服务器初始化

若要确认报表服务器初始化,请通过在命令窗口中键入 https://<servername>/reportserver 来对报表服务器 Web 服务运行 ping 命令。 如果发生 RSReportServerNotActivated 错误,则表示初始化失败。