管理报表服务器数据库

更新日期: 2007 年 9 月 15 日

Reporting Services 部署使用两个 SQL Server 关系数据库进行内部存储。 默认情况下,这两个数据库名称分别为 ReportServer 和 ReportServerTempdb。 ReportServerTempdb 随报表服务器主数据库一同创建,用于存储临时数据、会话信息和缓存的报表。

在 Reporting Services 中,数据库管理任务包括备份和还原报表服务器数据库,以及管理用于加密和解密敏感数据的加密密钥。

SQL Server 提供了许多工具,用于管理报表服务器数据库。

  • 若要备份或还原报表服务器数据库,移动报表服务器数据库或者恢复报表服务器数据库,可以使用 SQL Server Management Studio、Transact-SQL 命令或数据库命令提示实用工具。 有关说明,请参阅 SQL Server 联机丛书中的将报表服务器数据库移至另一台计算机
  • 若要将现有数据库内容复制到另一个报表服务器数据库,可以附加报表服务器数据库的一个副本,并将其用于其他报表服务器实例。 或者,可以创建并运行一个使用 SOAP 调用的脚本在新的数据库中重新创建报表服务器。 可以使用 rs 实用工具来运行该脚本。
  • 若要管理报表服务器与报表服务器数据库间的连接,以及查找用于特定报表服务器实例的数据库,可以使用 Reporting Services 配置工具中的“数据库安装”页。 若要了解有关报表服务器与报表服务器数据库的连接的详细信息,请参阅配置报表服务器数据库连接
  • 若要收集有关报表服务器性能和活动的度量信息,请参阅 SQL Server 联机丛书中的查询和报告报表执行日志数据

SQL Server 登录名和数据库权限

报表服务器数据库由报表服务器在内部使用。 由报表服务器 Web 服务和报表服务器 Windows 服务建立到任一数据库的连接。

可使用 Reporting Services 配置工具来指定连接。 可以使用服务帐户的凭据、域用户帐户的凭据或 SQL Server 登录名。 为连接所选择的帐户必须拥有 SQL Server 登录名并且必须拥有用于报表服务器数据库的 PublicRSExecRole 角色。

当您使用 Reporting Services 配置工具在承载数据库的 SQL Server 实例中配置数据库连接、升级报表服务器数据库或运行等效脚本时,将自动为您创建登录名和权限。

RSExecRole 提供了用于访问数据库表和执行存储过程的权限。 RSExecRole 是在创建报表服务器数据库时在 master 和 msdb 数据库中创建的。 从 SQL Server 2005 Service Pack 1 开始,RSExecRole 将是报表服务器数据库的 db_owner 角色的成员。 其他权限允许报表服务器更新后续版本的架构,因此简化了升级过程。

删除 RSExecRole 中未使用的帐户

如果您将报表服务器 Web 服务或 Windows 服务配置为在其他帐户下运行,则会自动将新帐户添加到 RSExecRole。 但是,必须手动删除先前添加的和不再使用的任何帐户。 若要删除这些帐户,请使用 Management Studio 执行以下操作:

  1. 连接到承载报表服务器数据库的数据库引擎实例。
  2. 依次展开**“数据库”ReportServer“安全性”文件夹,再展开“角色”“数据库角色”**,然后双击 RSExecRole
  3. 选择不再使用的帐户。
  4. 单击**“删除”**。

报表服务器数据库的命名约定

创建主数据库时,数据库名称必须遵循为标识符指定的规则。 临时数据库名称始终与报表服务器主数据库的名称相同,但是带有 Tempdb 后缀。 您不能为临时数据库选择其他名称。

由于报表服务器数据库被视为内部组件,因此不支持对其进行重命名。 如果重命名报表服务器数据库,则会出现错误。 具体而言,如果重命名主数据库,则会显示一条错误消息,说明数据库名称不同步。 如果重命名 ReportServerTempdb 数据库,则稍后运行报表时将出现以下内部错误:

“报表服务器上出现内部错误。 有关详细信息,请参阅错误日志。 (rsInternalError)

对象名‘ReportServerTempDB.dbo.PersistedStream’无效。”

由于 ReportServerTempdb 名称是在内部存储的,并且由存储过程用来执行内部操作,所以会发生此错误。 重命名临时数据库将使存储过程无法正常工作。

关于数据库版本

在 Reporting Services 中,未提供有关数据库版本的显式信息。 但是,由于数据库版本始终与产品版本同步,因而可以使用产品版本信息来了解数据库版本的更改时间。 Reporting Services 的产品版本信息是通过出现在日志文件、所有 SOAP 调用的标题中的文件版本信息指示的;连接到报表服务器 URL(例如,打开浏览器浏览 https://localhost/reportserver)时也会指示 Reporting Services 的产品版本信息。

在报表服务器数据库上启用快照隔离

您不能在报表服务器数据库上启用快照隔离。 如果启用快照隔离,则会遇到以下错误:“所选报表尚未做好准备,无法查看。 报表仍处于呈现状态,或报表快照不可用”。

如果不是您有意启用了快照隔离,则该属性可能是由另一个应用程序设置的,或者可能是 model 数据库启用了快照隔离,结果导致所有新数据库都继承了该设置。

若要关闭报表服务器数据库上的快照隔离,请启动 Management Studio,打开一个新的查询窗口,然后粘贴并运行以下脚本:

ALTER DATABASE ReportServer
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServerTempdb
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServer
SET READ_COMMITTED_SNAPSHOT OFF
ALTER DATABASE ReportServerTempDb
SET READ_COMMITTED_SNAPSHOT OFF

请参阅

概念

创建报表服务器数据库
Reporting Services 安装的备份和还原操作
报表服务器数据库
管理 Reporting Services
报表服务器数据库要求
存储加密的报表服务器数据
管理加密密钥

其他资源

部署 Reporting Services

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2007 年 9 月 15 日

新增内容:
  • 添加了有关在报表服务器数据库上启用快照隔离的信息。

2006 年 12 月 12 日

新增内容:
  • 删除 RSExecRole 中未使用的帐户

2006 年 4 月 14 日

新增内容:
  • 报表服务器数据库的命名约定和版本信息