我想知道是否有一种方法可以在SQL(2005)查询中返回(对于所有报告):报表ID、报表名称、报表路径、用户和组安全性、数据源。
我知道我可以转到我的报表服务器页面,然后转到"属性">"安全性",但我们有120多个报表,我想看看是否有更简单的方法来获取我需要的信息。
提前感谢!
A。永远不要直接查询RS数据库,直到你知道你在做什么。查询可能会获取锁定,这可能会影响RS的整体性能
B。要了解报告执行统计信息,您可以在RS 2008以后的版本中使用ExecutionLog视图,或者使用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=主页
要了解有关RS SOAP API的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms154052.aspx
您可以使用类似SSMS的东西直接查询ReportServer
数据库。您要查找的大部分内容可以直接在dbo.Catalog
表中找到:
SELECT *
FROM dbo.Catalog
WHERE Type = 2; -- 2 = Reports, 5 = Data Sources