Reporting services 在SSRS报告中使用用户ID/角色

Reporting services 在SSRS报告中使用用户ID/角色,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,好的,我回答了我的第一个问题,当时我正试图找出如何表达这篇文章-我可以使用用户将Windows登录包含在SQL Server Reporting Services 2008R2报告中!用户ID变量 因此,下一个问题是,假设我定义了一个自定义SSRS角色QAMPS,我可以从报表中访问该角色,以便只向该服务器角色中的某个人显示完整的报表,而只向其他任何人显示他们自己的数据吗?或者我必须做两个报告,一个包括所有人,只能由QEMP访问,另一个可以由任何人访问,但仅限于他们自己的数据 谢谢 为什么不将Us

好的,我回答了我的第一个问题,当时我正试图找出如何表达这篇文章-我可以使用用户将Windows登录包含在SQL Server Reporting Services 2008R2报告中!用户ID变量

因此,下一个问题是,假设我定义了一个自定义SSRS角色QAMPS,我可以从报表中访问该角色,以便只向该服务器角色中的某个人显示完整的报表,而只向其他任何人显示他们自己的数据吗?或者我必须做两个报告,一个包括所有人,只能由QEMP访问,另一个可以由任何人访问,但仅限于他们自己的数据


谢谢

为什么不将UserId传递到查询/存储过程中,并根据UserId权限过滤结果?

为什么不将UserId传递到查询/存储过程中,并根据UserId权限过滤结果?

您可以找到已定义角色以及通过查询ReportServer数据库,系统定义的角色内容管理器等:

select Roles.RoleName, Users.UserName
from PolicyUserRole
join Roles
on PolicyUserRole.RoleId = Roles.RoleId
join Users
on Users.UserId = PolicyUserRole.UserId

通过查询ReportServer数据库,您可以找到已定义角色以及系统定义角色内容管理器等的SSRS角色成员信息:

select Roles.RoleName, Users.UserName
from PolicyUserRole
join Roles
on PolicyUserRole.RoleId = Roles.RoleId
join Users
on Users.UserId = PolicyUserRole.UserId

但是我如何知道这些权限是什么?@Sarek您可以找到这样一个服务器角色的成员:选择role.name作为RoleName,Mbr.name作为MemberName from sys.server\u role\u members RoleMembers加入role.principal\u id=RoleMembers.role\u principal\u id加入sys.server\u principals Mbr.principal\u id=RoleMembers.member\u principal\u idI我想我问错了上面的问题-我不是指服务器角色,我指的是自定义SSRS角色。但我如何确定这些权限是什么?@Sarek您可以找到服务器角色的成员,如下所示:选择role.name作为RoleName,Mbr.name作为MemberName from sys.server\u role\u members RoleMembers加入role.principal\u id=RoleMembers.role\u principal\u id加入sys.server\u principals Mbr.principal\u id=RoleMembers.member\u principal\u idI我想我问错了上面的问题-我不是指服务器角色,我指的是自定义SSRS角色。