SSRS角色的意义?报告取决于存储过程的许可

时间:2013-04-05 20:01:35

标签: security reporting-services ssrs-2008

我有一组使用存储过程的SSRS报告,我想向某人提供仅供查看访问的报告。我相信这可以通过分配用户/组“浏览器”SSRS角色来完成。但它不起作用。

报告访问的授予/拒绝只能通过对基础存储过程的授予/拒绝EXECUTE权限来完成。

我在这里遗漏了什么吗?如果上述情况属实,那么SSRS角色的意义何在。

1 个答案:

答案 0 :(得分:1)

数据源权限与报表访问权限不同。

SSRS角色可以控制用户是否可以访问报告。报告数据源很可能设置为将用户凭据传递给数据库,从而传递存储过程;这就是为什么你需要在那个级别设置权限的原因。

如果用户无法访问报告,则无法运行报告,甚至无法访问数据库。

要以不同的方式查看它,请考虑一个报告,其中凭据存储在数据源中,而不仅仅是使用Windows身份验证传递。这意味着运行报表的任何用户都将使用这些存储的凭据连接到数据库,而不是自己。您只需要担心数据源凭据的数据库权限。您仍然需要授予/拒绝对报告的访问权限,这就是报告访问权限将产生影响的地方。

评论后修改:

您提到了两种方案,一种是将数据源设置为存储数据库用户凭据,另一种是设置数据源数据库访问权限以使用运行报告的任何人的凭据。

在这两种方案中,您都可以在报表服务器级别控制对报表本身的访问。

因此,如果您直接在报告级别或更高级别授予 Domain \ User1 浏览器角色,他们就可以访问该报告。如果未设置访问权限, Domain \ User2 将无法运行报告。

现在已经设置了报告权限,您需要考虑如何设置数据源。

当凭据存储在数据源中时,您只需要考虑该用户的数据库权限。假设您已将数据源设置为以 Domain \ ReportUser 连接到数据库 - 只有此用户需要访问底层存储过程。 Domain \ User1 不访问数据库,因此对这些对象不需要EXECUTE;只有 Domain \ ReportUser 才能。

如果未存储凭据,则运行报表的用户将执行数据源数据库访问,因此在这种情况下,当 Domain \ User1 运行报表时,它们也将运行基础存储过程因此需要对象的EXECUTE权限。

在两种数据源方案中,由于报告权限, Domain \ User2 无法访问报告,因此数据库权限无关紧要。