3

我想知道是否有辦法在SQL(2005)查詢中返回(針對所有報告): 報告ID,報告名稱,報告路徑,用戶和組安全, 數據源。需要查詢SSRS數據庫以獲得報告訪問

我知道我可以訪問我的報告服務器頁面並轉到屬性>安全性,但我們有超過120個報告,我想查看是否有更簡單的方法來獲取我需要的信息。

在此先感謝!

回答

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

2

您可以使用類似SSMS的方式直接查詢ReportServer數據庫。大多數時候,你要查找的內容,可以在dbo.Catalog表直接發現:

SELECT * 
FROM dbo.Catalog 
WHERE Type = 2; -- 2 = Reports, 5 = Data Sources 
+0

謝謝,但並沒有告訴我,我看最重要的事情對於。哪些用戶和組可以訪問該報告?它也只是列出報告或數據源。我想知道每個報告還使用了哪些數據源。 – user2233506