SSRS - 通过ReportServer数据库表确定报告权限?

时间:2011-07-06 17:25:38

标签: sql-server ssrs-2008

如何以编程方式确定有权访问特定SSRS报告的登录/用户?

我想创建一个数据集市,以便为想要查看谁有权访问特定报告的经理填充报告。我们当前为Active Directory组分配权限,然后SQL Server和SSRS使用这些权限来确定权限。我想知道SSRS的元数据中是否有一个表跟踪如何为报告分配权限。

2 个答案:

答案 0 :(得分:27)

这是一个可以完成您想要的大部分内容的脚本,您可以根据需要进行调整:

select C.UserName, D.RoleName, D.Description, E.Path, E.Name 
from dbo.PolicyUserRole A
   inner join dbo.Policies B on A.PolicyID = B.PolicyID
   inner join dbo.Users C on A.UserID = C.UserID
   inner join dbo.Roles D on A.RoleID = D.RoleID
   inner join dbo.Catalog E on A.PolicyID = E.PolicyID
order by C.UserName   

您可以在SSRS SQL ReportServer上运行脚本

答案 1 :(得分:1)

上述脚本可以正常工作,但请记住,它还会显示已删除的用户 - 即不再位于Active Directory中的用户,有时可能会造成混淆。

此外,Microsoft并未正式支持对其ReportServer数据库的任何查询。