删除 SSRS 2008 中的所有权限
Remove All Permission In SSRS 2008
必须删除 SSRS 2008 所有报告的所有权限并只保留一个组,有没有办法通过 PS、VB、T-SQL 中的脚本执行此任务?
我可以看到两种方法:
推荐(支持)方式
查看所有报告并恢复家长安全。
这可能需要很长时间,具体取决于您拥有的数量或报告。
不支持的方式
这应该可以做你想做的事情而不需要太多的工作,但是风险很大。
- 备份您的 ReportServer 数据库(重要)
- 在网络界面的根目录上应用你想要的权限
- 进入
Catalog
table,寻找对应条目的PolicyID
(应该是第一行,几乎所有其他列=NULL
, 和 PolicyRoot
= 1
)
- 执行以下查询:
update [dbo].[Catalog] set [PolicyID] = <YourRootPolicyID>
- (可选)清除
PolicyUserRole
table,它将用户映射到角色和策略:
delete from [dbo].[PolicyUserRole] where [PolicyID] <> <YourRootPolicyID>
- (可选)清除
Policies
table,其中包含策略列表(= 安全设置):
delete from [dbo].[Policies] where [PolicyID] <> <YourRootPolicyID>
您的所有项目现在都将具有相同的安全设置。
必须删除 SSRS 2008 所有报告的所有权限并只保留一个组,有没有办法通过 PS、VB、T-SQL 中的脚本执行此任务?
我可以看到两种方法:
推荐(支持)方式
查看所有报告并恢复家长安全。
这可能需要很长时间,具体取决于您拥有的数量或报告。
不支持的方式
这应该可以做你想做的事情而不需要太多的工作,但是风险很大。
- 备份您的 ReportServer 数据库(重要)
- 在网络界面的根目录上应用你想要的权限
- 进入
Catalog
table,寻找对应条目的PolicyID
(应该是第一行,几乎所有其他列=NULL
, 和PolicyRoot
=1
) - 执行以下查询:
update [dbo].[Catalog] set [PolicyID] = <YourRootPolicyID>
- (可选)清除
PolicyUserRole
table,它将用户映射到角色和策略:
delete from [dbo].[PolicyUserRole] where [PolicyID] <> <YourRootPolicyID>
- (可选)清除
Policies
table,其中包含策略列表(= 安全设置):
delete from [dbo].[Policies] where [PolicyID] <> <YourRootPolicyID>
您的所有项目现在都将具有相同的安全设置。