如何:建立 RSExecRole
Reporting Services 會使用稱為 RSExecRole 之預先定義的資料庫角色,授與報表伺服器對於報表伺服器資料庫的權限。RSExecRole 角色會自動與報表伺服器資料庫一起建立。您絕對不能修改它或是將其他使用者指派給這個角色,這是一般的規則。但是,當您將報表伺服器資料庫移到新的或另一個 SQL ServerDatabase Engine 時,您必須在 Master 和 MSDB 系統資料庫中重新建立此角色。
使用下列指示執行下列步驟:
在 Master 系統資料庫中建立及提供 RSExecRole。
在 MSDB 系統資料庫中建立及提供 RSExecRole。
[!附註]
本主題的指示適用於不想要執行指令碼或撰寫 WMI 程式碼來提供報表伺服器資料庫的使用者。如果您管理大型部署,而且平常都會移動資料庫,您應該撰寫指令碼,讓這些步驟自動化。如需詳細資訊,請參閱<Reporting Services WMI 提供者>。
開始之前
請備份加密金鑰,好讓您可以在移動資料庫之後還原這些金鑰。這個步驟不會直接影響您建立及提供 RSExecRole 的能力,但是您必須擁有金鑰的備份,才能夠確認您的工作。如需詳細資訊,請參閱<備份與還原加密金鑰>。
請確認您已經使用具有 SQL Server 執行個體上 sysadmin 權限的使用者帳戶登入。
請確認在您打算使用的 Database Engine 執行個體上已安裝及執行 SQL Server Agent 服務。
附加 reportservertempdb 和 reportserver 資料庫。您不需要附加這些資料庫也可以建立實際角色,但是在您測試工作以前,必須要附加這些資料庫。
手動建立 RSExecRole 的指示是要用於移轉報表伺服器安裝的環境。本主題不會說明類似備份及移動報表伺服器資料庫等重要工作,這些工作記載於 Database Engine 文件集內。如需有關移轉程序內之所有工作的詳細資訊,請參閱<移轉 (Reporting Services)>。
在 Master 資料庫中建立 RSExecRole
Reporting Services 會使用適用於 SQL Server Agent 服務的擴充預存程序來支援排程作業。下列步驟說明如何將這些程序的 Execute 權限授與給 RSExecRole 角色。
使用 Management Studio 在 Master 系統資料庫中建立 RSExecRole
啟動 SQL ServerManagement Studio 及連接到主控報表伺服器資料庫的 Database Engine 執行個體。
開啟 [資料庫]。
開啟 [系統資料庫]。
開啟 [Master]。
開啟 [安全性]。
開啟 [角色]。
以滑鼠右鍵按一下 [資料庫角色],然後選取 [新增資料庫角色]。[一般] 頁面隨即出現。
在 [角色名稱] 中輸入 RSExecRole。
在 [擁有者] 中輸入 DBO。
按一下 [安全性實體]。
按一下 [搜尋]。[加入物件] 對話方塊隨即出現。預設會選取 [特定物件] 選項。
按一下 [確定]。[選取物件] 對話方塊隨即出現。
按一下 [物件類型]。
按一下 [擴充預存程序]。
按一下 [確定]。
按一下 [瀏覽]。
向下捲動擴充預存程序的清單,並選取以下項目:
xp_sqlagent_enum_jobs
xp_sqlagent_is_starting
xp_sqlagent_notify
按一下 [確定],再按一下 [確定]。
在 [Execute] 資料列中,按一下 [授與] 資料行內的核取方塊,然後按一下 [確定]。
針對其餘的每一個預存程序重複此步驟。必須針對所有的三個預存程序授與 RSExecRole Execute 權限。
在 MSDB 資料庫中建立 RSExecRole
Reporting Services 會使用適用於 SQL Server Agent 服務的預存程序,並從系統資料表擷取作業資訊來支援排程作業。下列步驟說明如何將這些程序的 Execute 權限及資料表的 Select 權限授與給 RSExecRole。
在 MSDB 系統資料庫中建立 RSExecRole
重複類似的步驟來授與 MSDB 中預存程序和資料表的權限。為了簡化步驟,您將會個別提供預存程序和資料表。
開啟 [MSDB]。
開啟 [安全性]。
開啟 [角色]。
以滑鼠右鍵按一下 [資料庫角色],然後選取 [新增資料庫角色]。[一般] 頁面隨即出現。
在 [角色名稱] 中輸入 RSExecRole。
在 [擁有者] 中輸入 DBO。
按一下 [安全性實體]。
按一下 [加入]。[加入物件] 對話方塊隨即出現。預設會選取 [指定物件] 選項。
按一下 [確定]。
按一下 [物件類型]。
按一下 [預存程序]。
按一下 [確定]。
按一下 [瀏覽]。
向下捲動項目的清單,並選取以下項目:
sp_add_category
sp_add_job
sp_add_jobschedule
sp_add_jobserver
sp_add_jobstep
sp_delete_job
sp_help_category
sp_help_job
sp_help_jobschedule
sp_verify_job_identifiers
按一下 [確定],再按一下 [確定]。
選取第一個預存程序:sp_add_category。
在 [Execute] 資料列中,按一下 [授與] 資料行內的核取方塊,然後按一下 [確定]。
針對每個剩餘的預存程序重複此步驟。必須針對所有的十個預存程序為 RSExecRole 授與 Execute 權限。
在 [安全性實體] 索引標籤上,再次按一下 [加入]。[加入物件] 對話方塊隨即出現。預設會選取 [指定物件] 選項。
按一下 [確定]。
按一下 [物件類型]。
按一下 [資料表]。
按一下 [確定]。
按一下 [瀏覽]。
向下捲動項目的清單,並選取以下項目:
syscategories
sysjobs
按一下 [確定],再按一下 [確定]。
選取第一個資料表:syscategories。
在 [Select] 資料列中,按一下 [授與] 資料行內的核取方塊,然後按一下 [確定]。
針對 sysjobs 資料表重複此步驟。必須針對這兩個資料表為 RSExecRole 授與 Select 權限。
移動報表伺服器資料庫
在建立角色之後,您可以將報表伺服器資料庫移到新的 SQL Server 執行個體。如需詳細資訊,請參閱<將報表伺服器資料庫移至其他電腦>。
如果您要將 Database Engine 升級到 SQL Server 2008,您可以在移動資料庫之前或之後來升級。
當報表伺服器連接到報表伺服器資料庫時,報表伺服器資料庫將會自動升級到 SQL Server 2008。升級此資料庫不需要任何特定步驟。
還原加密金鑰及確認工作
如果您已經附加報表伺服器資料庫,您現在應該能夠完成以下步驟來確認您的工作。
在移動資料庫之後確認報表伺服器是否可操作
啟動 Reporting Services 組態工具,並連接到報表伺服器。
按一下 [資料庫]。
按一下 [變更資料庫]。
按一下 [選擇現有報表伺服器資料庫]。
輸入 Database Engine 的伺服器名稱。如果您將報表伺服器資料庫附加到具名執行個體,您應該使用以下格式輸入此執行個體名稱:<servername>\<instancename>。
按一下 [測試連接]。
按 [下一步]。
在 [資料庫] 上,選取報表伺服器資料庫。
按 [下一步],並完成精靈。
按一下 [加密金鑰]。
按一下 [還原]。
選取具有對稱金鑰之備份副本 (用來解密預存認證) 及報表伺服器資料庫中之連接資訊的強式檔案 (.snk)。
輸入密碼,並按一下 [確定]。
按一下 [報表管理員 URL]。
按一下此連結,開啟報表管理員。您應該可從報表伺服器資料庫中看到報表伺服器項目。