Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

SSRS 2005 report to show reports in report manager and users who can access the reports

Posted on 2014-09-26
2
Medium Priority
?
217 Views
Last Modified: 2014-10-01
Hi Experts

I need a report from SSRS 2005 to show the reports available in report manager and the users who can access that report and there type of access levels.

Dave.
0
Comment
Question by:MrDavidThorn
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 37

Accepted Solution

by:
ValentinoV earned 2000 total points
ID: 40349694
SSRS uses two system databases. One of them is called reportserver and contains the info you're looking for.

Basically the Catalog table contains a list of the reports, Roles contains the different roles and Users contains the users that have been defined.  You'll need to go through Policies to link a role with a user.

Have a look at the following query:

SELECT 
	CAT.Name
	,U.UserName
	,ROL.RoleName
	,ROL.Description
	,U.AuthType
FROM dbo.Users U
INNER JOIN dbo.PolicyUserRole PUR ON U.UserID = PUR.UserID
INNER JOIN dbo.Policies POLICY ON POLICY.PolicyID = PUR.PolicyID
INNER JOIN dbo.Roles ROL ON ROL.RoleID = PUR.RoleID
INNER JOIN dbo.Catalog CAT ON CAT.PolicyID = POLICY.PolicyID
ORDER BY CAT.Name

Open in new window

Please note that, although I could have written this query myself given some time, I didn't because I knew it already existed here (query 4): SQL Server Reporting Services 2008 R2 Report Server Database Helpful Queries
0
 

Author Closing Comment

by:MrDavidThorn
ID: 40354109
I've used

SELECT   E.Name,E.Path,  
CASE E.[Type]
      WHEN 1 THEN 'FOLDER'
      WHEN 2 THEN 'REPORT'
      WHEN 4 THEN 'REPORT'
END AS [Type],C.UserName, D.RoleName, D.[Description]
From dbo.PolicyUserRole A with (NoLock)
INNER JOIN dbo.Users c WITH (NoLock) on A.UserId = C.UserId
INNER JOIN dbo.Roles D WITH (NoLock) on A.RoleId = D.RoleId
INNER JOIN (Select * FROM dbo.Catalog E With (NoLock) Where [Type] Not In (3,5)
 ) E
On A.PolicyID = E.PolicyID
Order by e.NAME
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Written by Valentino Vranken. A while ago I wrote an article called Chart Optimization Tips (http://www.experts-exchange.com/articles/Microsoft/Development/MS-SQL-Server/MS-SQL_Reporting/Chart-Optimization-Tips.html).  This article explained how …
In this short article I will be talking about two functions in the SQL Server Reporting Services (SSRS) function stack.  Those functions are IIF() and Switch().  And I'll be showing you how easy it is to add an Else part to the Switch function. T…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…
Suggested Courses

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question