0

我目前正在运行带有 MSSQL 服务器和 Reporting Services 的 Windows Server 2008-R2。

目前有成百上千的文件夹和报告,但是用户都调整了他们的安全设置。

我的问题是:我是否可以将所有文件夹和报告的所有权限重置为与 /Home 文件夹具有相同的用户权限,而不必一一打开它们?或者重置所有权限,在 /Home 文件夹上创建新权限并让其他文件夹和报告继承它们?

4

3 回答 3

2

您可以使用 API 或直接更改 SSRS 数据。API 已获批准且更安全。本文有一些链接可以帮助您入门。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d9f1b807-0200-47c9-9ec6-dd5316db13cf/reset-all-security-policies?forum=sqlreportingservices

于 2016-06-07T12:49:18.397 回答
1

对不起,我迟到了,但我刚刚发现这篇文章帮助我解决了这个问题。

背景

我正在将 SSRS (2016) 应用程序和数据库从一个域林移动到另一个域林。更新 PolicyRoot 是在正确的轨道上,但您还必须将 PolicyID 更新为您想要模仿的父文件夹(或另一个文件夹的安全性)。在我的情况下,无法从 Domain2 中的站点看到所有 Domain1\ 帐户,因此我尝试使用另一个域和/或组更新 PolicyUsers 和 Users 表无济于事。因此,在阅读了这篇文章并进行了一些测试之后,我能够创建一个脚本,将所有子文件夹和对象重置为父文件夹的。您只需要能够在 SSRS 网站内的父根文件夹上设置权限。

------------- 启动脚本

使用 [报表服务器]

声明@PolicyID varchar(max)

-- 这是根文件夹,注意 PolicyID 编号

-- 从 ParentID 为空且 PolicyRoot=1 的目录中选择 PolicyID、PolicyRoot、*

从 ParentID 为空的目录中选择 @PolicyID = PolicyID

-- 下面的行将重置所有子文件夹的所有安全权限

更新目录集 PolicyID=@PolicyID, PolicyRoot = 0 其中 ParentID 不为空

------------- 结束脚本

注意:0 的策略根表示从策略 id 继承,1 表示它是唯一的

于 2020-02-03T19:18:18.347 回答
0

您可以通过编辑 ReportServer 数据库中的 [Catalog] 表来批量执行此操作。

我认为如果您将 [PolicyRoot] 字段设置为 0,文件夹对象将从 Home 继承权限。

从这个查询开始,看看表的内容:

SELECT 
    *
FROM 
    [ReportServer].[dbo].[Catalog]
WHERE
    [PolicyRoot] <> 0
    AND [Path] LIKE '/%' --get child folders
    AND [Type] = 1 -- just folders

我还没有对此进行测试,因此建议格外小心,一定要先备份数据库。

于 2016-06-07T12:44:29.487 回答