0

我有一个数据库,里面有很多客户。表的每一行都有一个客户 ID,表示数据属于哪个客户。

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

4

1 回答 1

1

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

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

WHERE MappingTable.DomainUsername = @CurrentUser

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

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


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

于 2012-10-31T02:53:11.700 回答