我想知道是否有办法在SQL(2005)查询中返回(对于所有报告): 报告ID,报告名称,报告路径,用户和组安全性,数据源。
我知道我可以转到我的报告服务器页面并转到属性>安全性,但我们有超过120个报告,我想看看是否有更简单的方法来获取我需要的信息。
提前致谢!
答案 0 :(得分:3)
一个。在您知道自己在做什么之前,永远不要直接查询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
℃。 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
答案 1 :(得分:2)
您可以使用SSMS之类的东西直接查询ReportServer
数据库。您正在寻找的大部分内容都可以直接在dbo.Catalog
表中找到:
SELECT *
FROM dbo.Catalog
WHERE Type = 2; -- 2 = Reports, 5 = Data Sources