能否在SSRS中实现行级安全性?

时间:2019-08-13 13:45:45

标签: sql sql-server reporting-services ssrs-2012

是否有可能基于Active Directory凭据在SSRS(报告工具)中实现行级安全性。

https://www.sqlshack.com/sql-server-data-security-feature-rls-row-level-security-and-gdpr/

在上面,RLS在SQL Server中完全管理,但我的要求是在SSRS中处理RLS。

SSRS报告应根据用户登录信息显示数据。

2 个答案:

答案 0 :(得分:1)

创建一个Internal Parameter,其默认值为User!UserID(请参见built-in User Object)。然后在您的数据集中使用该参数。

答案 1 :(得分:0)

只要使用活动目录帐户在报表数据库中维护权限信息,就可以维护行级安全性:

对于我来说,我正在通过以下步骤应用行级安全性,希望同样适用于您:

  1. 创建其他参数(@User),它总是隐藏参数
  2. 使用表达式@User设置=Replace(User!UserID, "DomainName\", "")的默认值
  3. 通过数据集属性->查询
  4. 过滤其他参数或使用@User参数进行报告

示例报告查询:

select * 
from ReportView 
where entity in (select entity from PermissionView where UserID = @User)