我需要对一些 SSRS 报告的部署和安全性做出决定,并希望就最合适的方法提供一些建议。
我们有 40 多个站点,它们只能访问其站点的信息。每个站点都可以访问多个报告,例如 Report A、Report B 等。对于每个站点,报告名称为Report A - Site 1、Report B - Site 1等。对于每个报告(Report A),有是主报告(报告 A - 主)。主报告是报告本身 - 数据集和格式 - 并包含站点名称的隐藏参数。每个站点的报告链接到此主报告并传入站点名称。因此,如果报告发生更改,则在一处进行更改。
请注意,将报告限制为数据库中特定于站点的信息是不可能的。我们的数据源使用服务帐户,所有用户对信息的访问都在门户网站中处理。
现在是时候授予用户访问这些报告的权限了。当前设置为所有报告和主报告都在一个文件夹中。对每个报告的访问单独控制,用户必须有权访问主报告及其站点报告。
我强烈希望为每个站点设置一个文件夹并以这种方式控制访问。显然,随着添加特定站点的报告,这将使其变得更容易,并且将控制访问的是超级用户。我担心这会使报告的部署变得异常困难。由于链接机制,所有 40 多个版本(加上Master)都在同一个 BIDS 项目中——每次更改部署到 40 个不同的位置似乎是一场噩梦。
我想知道是否有其他人遇到过类似的挑战并找到了解决它的好方法。我玩过链接报告,但是站点报告无法“找到”主报告,即使链接副本放在同一文件夹中也是如此。
编辑:为了澄清和使用确切的术语,主报告是每个站点报告的子报告。
嗯……我想通了!
这是我所做的:
现在这里是“棘手”的部分...如果您在报表生成器的源报表文件夹中编辑报表,您可以设置子报表以指向报表服务器上的特定文件夹结构。这使您可以在 ReportServer 上的任何位置使用子报表,而不仅仅是在同一个本地目录中。我的假设是您也可以在 BIDS 中输入您希望用作子报告的已部署报告的完整路径,但您可以使用 Report Builder 浏览并单击。
因此,在这种情况下,我已将所有特定于站点的报告都指向Master Reports文件夹中的Master报告。
这对我们来说是一个很好的解决方案。现在,我们可以在文件夹级别授予用户访问权限,而不会对报表部署过程造成过多负担。