Ssrs 2008 SQL Server Reporting Services-自定义安全模块

Ssrs 2008 SQL Server Reporting Services-自定义安全模块,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,以以下两种情况为例:- 开发人员A已创建一组报告:- 报告A显示了奥迪汽车销售的详细信息 报告B显示了梅赛德斯汽车销售的详细信息 报告C显示了沃尔沃汽车销售的详细信息,等等,针对30多家制造商中的每一家。 所以我们有30个报告文件(.rpt) 开发人员A这样做是为了给每个广告用户组分配不同的安全权限:- A组只能看到奥迪汽车的销量, B组只能看到奔驰汽车的销量, C组只能看到沃尔沃汽车的销量,等等 开发商B采取了不同的方法:- 她创建了一个报告(一个.rpt文件),该报告接受“制造商”参数,以便

以以下两种情况为例:-

开发人员A已创建一组报告:- 报告A显示了奥迪汽车销售的详细信息 报告B显示了梅赛德斯汽车销售的详细信息 报告C显示了沃尔沃汽车销售的详细信息,等等,针对30多家制造商中的每一家。 所以我们有30个报告文件(.rpt)

开发人员A这样做是为了给每个广告用户组分配不同的安全权限:-

A组只能看到奥迪汽车的销量, B组只能看到奔驰汽车的销量, C组只能看到沃尔沃汽车的销量,等等

开发商B采取了不同的方法:-

她创建了一个报告(一个.rpt文件),该报告接受“制造商”参数,以便显示任何制造商的数据

在这两种情况下,报告都是从报告“菜单”加载的。在第一个场景中,每个制造商的超链接会将您带到相关报告。在第二个场景中,同一个超链接将制造商名称作为参数提供给单个报告

这种情况的缺点是单个报告文件无法锁定到特定的用户集。如果报告被锁定到A组,则B组或C组根本无法查看它

关于这个问题:-

为了使第二个场景可行,我们需要一种检查当前用户或当前用户组是否有权查看他们请求的数据的方法

我正在考虑使用一个自定义函数,比如
CheckAccess(Username,Manufacturer)
,它返回true或false,并根据返回值将用户重定向到加载报告,或者分别重定向到错误页面

另一种选择是为每个制造商设置角色,然后将角色分配给每组人员。然后是否可以使用自定义功能检查“Bill”是否具有“Audi”角色

在这里寻找最佳方法的想法。

我建议您:

  • 创建一个包含userid和report参数的表。这样可以管理用户访问的安全性

  • 然后使用ssrs
    User!UserID
    在查询中作为参数引用


  • 作为一个额外的好处,您可以创建一个查询,只填充活动用户可以看到的制造商。

    您的初始报告是ssrs报告还是其他报告?另外,我假设你问的问题是,你不能修改开发者报告,你可以修改最初的报告?我可以修改任何报告。因为不必创建多个半相同的报告,所以我更愿意使用第二种方案。这很好,我也更喜欢第二种方案。我下面的答案应该行得通。