我目前正在运行带有MSSQL服务器和Reporting Services的Windows Server 2008-R2。
目前有数百个文件夹和报告,但用户都调整了安全设置。
我的问题是:我是否可以重置所有文件夹和报告的所有权限,使其具有与/ Home文件夹相同的用户权限,而无需逐个打开它们? 或者重置所有权限,在/ Home文件夹上创建新权限,让其他文件夹和报告继承它们吗?
答案 0 :(得分:2)
您可以使用API或直接更改SSRS数据。 API已获批准且更安全。本文有一些链接可以帮助您入门。
答案 1 :(得分: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
我没有对此进行过测试,因此建议极端谨慎,并且一定要先备份数据库。
答案 2 :(得分:0)
对不起,我参加聚会很晚,但是我发现这篇帖子可以帮助我解决问题。
背景
我将SSRS(2016)应用程序和数据库从一个域林移到了另一个域林。更新PolicyRoot的方向正确,但是您还必须将PolicyID更新为要模仿的父文件夹(或其他文件夹的安全性)。就我而言,无法从Domain2内的站点看到所有Domain1 \帐户,因此我尝试使用另一个域和/或组来更新PolicyUsers和Users表,但无济于事。因此,在阅读本文并进行了一些测试之后,我能够创建一个脚本,将所有子文件夹和对象重置为父文件夹的脚本和对象。您只需要能够在SSRS网站内的父根文件夹上设置权限。
-------------启动脚本
使用[ReportServer]
声明@PolicyID varchar(max)
-这是根文件夹,请注意PolicyID号
-从目录中选择PolicyID,PolicyRoot,*,其中ParentID为null,PolicyRoot = 1
从目录中选择@PolicyID = PolicyID,其中ParentID为null
-在下面的行中,将重置所有子文件夹的所有安全权限
更新目录集PolicyID = @ PolicyID,PolicyRoot = 0,其中ParentID不为空
-------------结束脚本
注意:策略根为0表示从策略ID继承,而1为唯一。