3

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

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

提前致谢!

4

2 回答 2

3

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=Home

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

于 2013-07-30T20:55:40.153 回答
2

您可以ReportServer使用 SSMS 之类的工具直接查询数据库。您要查找的大部分内容都可以直接在dbo.Catalog表格中找到:

SELECT *
FROM dbo.Catalog
WHERE Type = 2; -- 2 = Reports, 5 = Data Sources
于 2013-07-30T18:27:06.123 回答