sql - 需要查询 SSRS 数据库以获取报告访问权限

标签 sql sql-server sql-server-2005 reporting-services reportingservices-2005

我想知道是否有办法在 SQL (2005) 查询中返回(针对所有报告): 报告 ID、报告名称、报告路径、用户和组安全性、数据源。

我知道我可以转到我的报表服务器页面并转到“属性”>“安全”,但是我们有超过 120 个报表,我想看看是否有更简单的方法来获取我需要的信息。

提前致谢!

最佳答案

一个。永远不要直接查询 RS 数据库,直到您知道自己在做什么。查询可能会获取锁,这可能会影响 RS 的整体性能。

B.要了解报告执行统计信息,您可以使用 RS 2008 及更高版本中的 ExecutionLog View 或使用 NOLOCK 提示进行查询。

Select CAST(C.Name AS VARCHAR(20)) [Name], 
E.ReportID, 
E.InstanceName, 
E.UserName, 
E.RequestType, 
E.Format, 
E.Parameters, 
E.TimeStart, 
E.TimeEnd, 
E.TimeDataRetrieval, 
E.TimeProcessing, 
E.TimeRendering, 
E.Source, 
E.Status, 
E.ByteCount, 
E.[RowCount] 
from executionlog E WITH (NOLOCK) inner join catalog C WITH (NOLOCK)   
on E.ReportID = C.ItemID 

C. RS 通过 SOAP API 公开了几乎所有的功能。例如,我的 MS 发布的这个示例展示了如何获取有关报告项的安全信息 http://msftrsprodsamples.codeplex.com/wikipage?title=SS2008R2%21RSPermissions%20Sample%20Application&referringTitle=Home

要了解有关 RS SOAP API 的更多信息,请参阅 http://msdn.microsoft.com/en-us/library/ms154052.aspx

关于sql - 需要查询 SSRS 数据库以获取报告访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17954567/

相关文章:

sql-server - SQL Server Management Studio 2005 和源代码管理

sql-server - 将 .bak mssql 2005 恢复到新的 mssql 2008r2 服务器

SQL 表键值对到 XML

sql-server - 在 sys.servers 错误中找不到服务器“DATABASE_NAME”

sql - 如何将参数传递给使用 sqlcmd 调用的 SQL Server 脚本?

在 Microsoft SQL 2008 上运行的 MySql 仿真

mysql - 我厚吗? MySQL : "Not unique table/alias" on LEFT JOIN

java - 查询显示额外行

sql - 是否可以在子字符串函数中使用字符代替位置?

mysql - 如何在 SQL 中获取每组的平均值并找出异常值