共用方式為


管理報表伺服器資料庫 (SSRS 原生模式)

Reporting Services 部署的內部儲存會使用兩個 SQL Server 關聯式資料庫。 根據預設,資料庫會命名為 ReportServerReportServerTempdbReportServerTempdb 是由主要報表伺服器資料庫所建立,用於儲存暫存資料、工作階段資訊和快取報表。

在 Reporting Services 中,資料庫管理工作包括備份與還原報表伺服器資料庫。 這些工作也包括管理用來加密和解密敏感資料的加密金鑰。

SQL Server 提供許多管理報表伺服器資料庫的工具。

  • 您可以使用 SQL Server Management Studio、Transact-SQL 命令或資料庫命令提示字元公用程式來:

    • 備份或還原報表伺服器資料庫
    • 移動報表伺服器資料庫
    • 復原報表伺服器資料庫

    如需詳細資訊,請參閱將報表伺服器資料庫移至其他電腦 (SSRS 原生模式)

  • 若要將現有的資料庫內容複製到其他報表伺服器資料庫,您可以附加報表伺服器資料庫的複本,並將這個複本與不同的報表伺服器執行個體一起使用。 或者,您也可以建立並執行使用 SOAP 呼叫的指令碼,在新的資料庫中重新建立報表伺服器內容。 您可以使用 rs 公用程式執行指令碼。

  • 您可以使用 Reporting Services 設定工具的 [資料庫安裝] 頁面,管理報表伺服器和報表伺服器資料庫之間的連線。 您也可以使用它來找出特定報表伺服器執行個體所使用的資料庫。 若要深入了解報表伺服器資料庫的報表伺服器連線,請參閱設定報表伺服器資料庫連線 (報表伺服器 Configuration Manager)

SQL Server 登入和資料庫權限

報表伺服器資料庫可供報表伺服器在內部使用。 任何一個資料庫的連接都是由報表伺服器服務所建立的。 您可以使用 Reporting Services 組態工具設定報表伺服器和報表伺服器資料庫的連線。

報表伺服器的資料庫連線認證可以使用服務帳戶、Windows 本機或網域使用者帳戶,或者 SQL Server 資料庫使用者。 您必須為連線選擇現有的帳戶。 Reporting Services 不會為您建立帳戶。

系統會針對您指定的帳戶自動建立報表伺服器資料庫的 SQL Server 登入。

此外,系統也會自動設定資料庫的權限。 Reporting Services 設定工具會將帳戶或資料庫使用者指派至報表伺服器資料庫的 PublicRSExecRole 角色。 RSExecRole 提供用來存取資料庫資料表及執行預存程序的權限。 當您建立報表伺服器資料庫時,系統會在主要資料庫和 msdb 中建立 RSExecRoleRSExecRole 是報表伺服器資料庫之 db_owner 角色的成員,可讓報表伺服器在支援自動升級程序的情況下更新自己的結構描述。

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

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

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

「報表伺服器發生內部錯誤。 如需詳細資訊,請參閱錯誤記錄檔。 (rsInternalError)

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

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

在報表伺服器資料庫上啟用快照集隔離

您無法在報表伺服器資料庫上啟用快照集隔離。 如已開啟快照隔離,您將會遇到下列錯誤:「選取的報表還無法檢視。 報表仍在轉譯中,或報表快照集無法使用。」

如果您並未刻意啟用快照集隔離,表示可能有另一個應用程式已經設定此内容,或者 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 的產品版本資訊請參見記錄檔、所有 SOAP 呼叫的標頭,以及連線到報表伺服器 URL 時 (例如,在 https://localhost/reportserver 開啟瀏覽器時) 出現的檔案版本資訊。