Share via


管理報表伺服器資料庫

更新: 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 提供用來存取資料庫資料表及執行預存程序的權限。當您建立報表伺服器資料庫時,會在 master 和 msdb 中建立 RSExecRole。從 SQL Server 2005 Service Pack 1 開始,RSExecRole 就是報表伺服器資料庫之 db_owner 角色的成員;這些額外的權限可讓報表伺服器在後續版本中更新結構描述,因此簡化了升級程序。

移除 RSExecRole 中未使用的帳戶

如果將報表伺服器 Web 服務或 Windows 服務設定為以不同的帳戶執行,則新帳戶會自動加入至 RSExecRole。不過,所有之前已加入的帳戶以及不再使用的帳戶都必須以手動方式移除。若要移除帳戶,請使用 Management Studio 執行下列動作:

  1. 連接至主控報表伺服器資料庫的 Database Engine 執行個體。
  2. 依序展開 [資料庫] 資料夾、[ReportServer] 資料夾、[安全性] 資料夾、[角色] 以及 [資料庫角色],然後按兩下 [RSExecRole]
  3. 選取不再使用的帳戶。
  4. 按一下 [移除]

報表伺服器資料庫的命名慣例

建立主要資料庫時,資料庫的名稱必須遵照<識別碼>中的規則。暫存資料庫名稱必須與主要報表伺服器資料庫的名稱相同,但要加上 Tempdb 後置詞。您不能將暫存資料庫命名為不同的名稱。

不支援重新命名報表伺服器資料庫,因為報表伺服器資料庫是被視為內部元件,如果重新命名報表伺服器資料庫將會發生錯誤。特別是,如果重新命名主要資料庫,將會出現錯誤訊息,說明資料庫名稱未同步。如果您重新命名 ReportServerTempdb 資料庫,稍後執行報表時就會發生下列內部錯誤:

「報表伺服器發生內部錯誤。請參閱錯誤記錄以取得更多詳細資料。(rsInternalError)

無效的物件名稱 'ReportServerTempDB.dbo.PersistedStream'。」

發生這個錯誤是因為 ReportServerTempdb 名稱是儲存於內部,以供預存程序執行內部作業之用,如果重新命名此暫存資料庫將會造成預存程序無法正常運作。

關於資料庫版本

在 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 日

新增內容:
  • 報表伺服器資料庫的命名慣例和版本控制資訊