我目前正在运行带有 MSSQL 服务器和 Reporting Services 的 Windows Server 2008-R2。
目前有成百上千的文件夹和报告,但是用户都调整了他们的安全设置。
我的问题是:我是否可以将所有文件夹和报告的所有权限重置为与 /Home 文件夹具有相同的用户权限,而不必一一打开它们?或者重置所有权限,在 /Home 文件夹上创建新权限并让其他文件夹和报告继承它们?
我目前正在运行带有 MSSQL 服务器和 Reporting Services 的 Windows Server 2008-R2。
目前有成百上千的文件夹和报告,但是用户都调整了他们的安全设置。
我的问题是:我是否可以将所有文件夹和报告的所有权限重置为与 /Home 文件夹具有相同的用户权限,而不必一一打开它们?或者重置所有权限,在 /Home 文件夹上创建新权限并让其他文件夹和报告继承它们?
您可以使用 API 或直接更改 SSRS 数据。API 已获批准且更安全。本文有一些链接可以帮助您入门。
对不起,我迟到了,但我刚刚发现这篇文章帮助我解决了这个问题。
背景
我正在将 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 表示它是唯一的
您可以通过编辑 ReportServer 数据库中的 [Catalog] 表来批量执行此操作。
我认为如果您将 [PolicyRoot] 字段设置为 0,文件夹对象将从 Home 继承权限。
从这个查询开始,看看表的内容:
SELECT
*
FROM
[ReportServer].[dbo].[Catalog]
WHERE
[PolicyRoot] <> 0
AND [Path] LIKE '/%' --get child folders
AND [Type] = 1 -- just folders
我还没有对此进行测试,因此建议格外小心,一定要先备份数据库。