需要查询SSRS数据库以进行报告访问

时间:2013-07-30 18:24:04

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

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

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

提前致谢!

2 个答案:

答案 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