我想知道是否有辦法在SQL(2005)查詢中返回(針對所有報告): 報告ID,報告名稱,報告路徑,用戶和組安全, 數據源。需要查詢SSRS數據庫以獲得報告訪問
我知道我可以訪問我的報告服務器頁面並轉到屬性>安全性,但我們有超過120個報告,我想查看是否有更簡單的方法來獲取我需要的信息。
在此先感謝!
我想知道是否有辦法在SQL(2005)查詢中返回(針對所有報告): 報告ID,報告名稱,報告路徑,用戶和組安全, 數據源。需要查詢SSRS數據庫以獲得報告訪問
我知道我可以訪問我的報告服務器頁面並轉到屬性>安全性,但我們有超過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=Home
要知道更多關於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
謝謝,但並沒有告訴我,我看最重要的事情對於。哪些用戶和組可以訪問該報告?它也只是列出報告或數據源。我想知道每個報告還使用了哪些數據源。 – user2233506