删除 SSRS 2008 中的所有权限

Remove All Permission In SSRS 2008

必须删除 SSRS 2008 所有报告的所有权限并只保留一个组,有没有办法通过 PS、VB、T-SQL 中的脚本执行此任务?

我可以看到两种方法:

推荐(支持)方式

查看所有报告并恢复家长安全。
这可能需要很长时间,具体取决于您拥有的数量或报告。

不支持的方式

这应该可以做你想做的事情而不需要太多的工作,但是风险很大。

  1. 备份您的 ReportServer 数据库(重要
  2. 在网络界面的根目录上应用你想要的权限
  3. 进入Catalogtable,寻找对应条目的PolicyID(应该是第一行,几乎所有其他列=NULL , 和 PolicyRoot = 1)
  4. 执行以下查询: update [dbo].[Catalog] set [PolicyID] = <YourRootPolicyID>
  5. (可选)清除 PolicyUserRole table,它将用户映射到角色和策略:
    delete from [dbo].[PolicyUserRole] where [PolicyID] <> <YourRootPolicyID>
  6. (可选)清除 Policies table,其中包含策略列表(= 安全设置):
    delete from [dbo].[Policies] where [PolicyID] <> <YourRootPolicyID>

您的所有项目现在都将具有相同的安全设置。