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