使用SSRS和共享客户数据库进行特别报告

时间:2012-10-30 23:36:53

标签: reporting-services ssrs-2012

我有一个包含许多客户的数据库。表的每一行都有一个客户ID,表示数据属于哪个客户。

是否可以让最终用户使用Ad-Hoc报告来构建报告,但只允许他们查看与其客户ID相关联的数据?

1 个答案:

答案 0 :(得分:1)

在报告中,您可以使用内置字段UserID返回当前用户的域名,例如MYDOMAIN \用户名。

如果您可以创建将客户ID映射到域名并将其连接到主数据表的表,那么您可以在数据集查询中添加where子句,例如

WHERE MappingTable.DomainUsername = @CurrentUser

在报告中,创建一个名为CurrentUser的隐藏参数,并将值设置为Globals!UserID.Value

您需要在报告数据源中使用Windows身份验证,其中报告用户凭据将传递到数据源,以使此解决方案正常工作。


编辑:我看到我误读了您的原始问题,实际上是在询问是否可以允许用户创建临时报告,同时限制他们对数据的查看。此方案排除了报告本身实现的任何解决方案,因为用户将设计自己的报告。相反,您可能需要在源数据库中实现某种形式的安全层,例如使用Views。如果您的用户使用域登录,您可以使用与上述类似的方法。例如,您的视图可能包含对SUSER_NAME()的引用,以限制该特定用户的数据。