1

采取以下两种情况:-

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

开发人员 A 已经这样做了,因此他可以为每个 AD 用户组分配不同的安全权限:-

A组只能看到奥迪汽车销量,B组只能看到奔驰汽车销量,C组只能看到沃尔沃汽车销量,以此类推。

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

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

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

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

关于问题:-

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

我正在考虑使用自定义函数,例如CheckAccess(Username,Manufacturer)返回真或假,并根据返回值将用户重定向到加载报告,或分别重定向到错误页面。

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

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

4

1 回答 1

-2

我建议你:

  1. 创建一个包含用户 ID 和报告参数的表。这样可以管理用户访问的安全性。

  2. 然后在查询中使用 ssrsUser!UserID引用作为参数。

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

于 2013-01-28T07:53:38.610 回答