【问题标题】:SSRS - Determine report permissions via ReportServer database tables?SSRS - 通过 ReportServer 数据库表确定报告权限?
【发布时间】:2019-01-26 03:58:47
【问题描述】:

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

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

【问题讨论】:

    标签: sql-server ssrs-2008


    【解决方案1】:

    这是一个脚本,可以满足您的大部分需求,您可以根据需要对其进行调整:

    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 上运行脚本

    【讨论】:

    • dbo.Policies (B) 在此查询中不需要
    • 非常适合查找角色过时的报告
    【解决方案2】:

    上面的脚本可以工作,但请记住,它也会显示已删除的用户 - 即不再在 Active Directory 中的用户,这有时可能会令人困惑。

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

    【讨论】:

    • GetPolicies() 方法可用于检索正确的权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2017-02-08
    • 2013-07-31
    • 2014-07-02
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多