我有多台服务器,其中 4 台安装了ReportServer
&ReportServerTempDB
数据库的报告服务。
几天前,我正在为新登录设置安全性,我发现RSExecRole
我的开发服务器(在reportserver
数据库中)中缺少该角色。它存在于ReportServerTempDB
, master
&msdb
数据库中。
我找到了一种在msdnmaster
上的&msdb
数据库上创建它的方法,
但它并没有帮助我使用与我运行的其他环境类似的所有安全性和属性来创建它。reportserver
有没有人遇到过这个问题?谁能帮我写一个剧本和解释这个角色?
打开“Reporting Services 配置管理器”--> 数据库,验证[Current Report Server Database Credential]下的登录是否是RSExecRole中的用户之一,如果不是,单击“Change Credentials”按钮更改为RSExecRole中的用户。
您也可以使用命令行实用程序 rsconfig http://technet.microsoft.com/en-us/library/ms162837.aspx
既然你也想要代码,我已经为你编写了脚本......
编辑:我已经编辑,所以下面成为完整的代码。
当然!运行 SQL Profiler,使用“Reporting Services 配置管理器”创建新的 ReportServer 数据库(您可以指定自己的名称以避免冲突)并捕获所有语句。最终脚本取决于 sql 版本和版本,因此它不是通用的,不应重复使用。它对教育有好处(例如 RSExecRole 依赖项),仅此而已。
我见过尝试编写所有 ReportServer 对象的脚本。听起来不错,但这是个坏主意——太容易错过重要的事情(RSExecRole)。应使用专用工具创建和配置第 3 方数据库(Reporting Services、ASPState 等)。另一种解释——有人明确放弃了这个角色。