管理报表服务器数据库
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 登录名和数据库权限
报表服务器数据库由报表服务器在内部使用。 报表服务器服务可建立到任一数据库的连接。 可以使用 Reporting Services 配置工具来配置报表服务器与报表服务器数据库的连接。
报表服务器到数据库的连接凭据可以是服务帐户、Windows 本地或域用户帐户或者 SQL Server 数据库用户。 您必须为连接选择现有的帐户,因为 Reporting Services 不会为您创建帐户。
系统会自动为您指定的帐户创建一个用来登录报表服务器数据库的 SQL Server 登录。
数据库权限也是自动配置的。 Reporting Services 配置工具将向帐户或数据库用户授予对报表服务器数据库的 Public 和 RSExecRole 角色。 RSExecRole 提供了用于访问数据库表和执行存储过程的权限。 RSExecRole 是在创建报表服务器数据库时在 master 和 msdb 数据库中创建的。 RSExecRole 是报表服务器数据库 db_owner 角色的成员,它允许报表服务器更新其架构以支持自动升级过程。
报表服务器数据库的命名约定
创建主数据库时,数据库名称必须遵循为数据库标识符指定的规则。 临时数据库名称始终与报表服务器主数据库的名称相同,但是带有 Tempdb 后缀。 您不能为临时数据库选择其他名称。
由于报表服务器数据库被视为内部组件,因此不支持对其进行重命名。 如果重命名报表服务器数据库,则会出现错误。 具体来说,如果重命名主数据库,则将显示一条错误消息,说明数据库名称不同步。 如果重命名 ReportServerTempdb 数据库,则稍后运行报表时将出现以下内部错误:
“报表服务器上出现内部错误。 有关详细信息,请参阅错误日志。 (rsInternalError)
对象名‘ReportServerTempDB.dbo.PersistedStream’无效。”
由于 ReportServerTempdb 名称是在内部存储的,并且由存储过程用来执行内部操作,所以会发生此错误。 重命名临时数据库将使存储过程无法正常工作。
针对报表服务器数据库启用快照隔离
您不能针对报表服务器数据库启用快照隔离。 如果快照隔离处于打开状态,则将遇到以下错误“所选报表尚未做好准备,无法查看。 报表仍处于呈现状态,或报表快照不可用。”
如果快照隔离不是有意启用的,则说明属性可能已经由另一个应用程序设置,或者已经针对**“模型”**数据库启用了快照隔离,从而导致所有的新数据库都继承该设置。
若要针对报表服务器数据库关闭快照隔离,请启动 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 的产品版本信息是通过出现在日志文件中以及所有 SOAP 调用的标头中的文件版本信息指示的;连接到报表服务器 URL(例如,打开浏览器浏览 https://localhost/reportserver)时也会指示 Reporting Services 的产品版本信息。
请参阅
任务
创建本机模式报表服务器数据库 (Reporting Services)
概念
Reporting Services 报表服务器(本机模式)