2013-06-04 27 views
5

Czy istnieje sposób, w jaki mogę wyświetlić listę (używając raportu SSRS lub zapytania za pomocą kodu SQL), zabezpieczenia Username lub Group, które zostały przypisane do folderów głównych, podfolderów lub raporty?SQL Server Reporting Services 2008 R2 - Bezpieczeństwo folderów i raportów

Zostałem poproszony o zidentyfikowanie jako kontrola, które grupy mają dostęp do wszystkich folderów głównych i podfolderów w tym folderze głównym lub nawet do poziomu pojedynczego raportu - kto ma dostęp!

Jak mogę wykonać tę prośbę?

Odpowiedz

11

Można wyszukiwać w bazie danych ReportServer te informacje, np.

SELECT 
    CASE [Catalog].[Type] 
     WHEN 1 THEN 'Folder' 
     WHEN 2 THEN 'Report' 
     WHEN 3 THEN 'Resource' 
     WHEN 4 THEN 'Linked Report' 
     WHEN 5 THEN 'Data Source' 
     WHEN 6 THEN 'Report Model' 
     WHEN 8 THEN 'Shared Dataset' 
     WHEN 9 THEN 'Report Part'  
    END AS CatalogType, 
    [Catalog].[Type] 
    --, [Catalog].ItemID 
    ,[Catalog].Name 
    , Roles.RoleName 
    , Users.UserName 
FROM PolicyUserRole 
INNER JOIN Roles ON PolicyUserRole.RoleID = Roles.RoleID 
INNER JOIN Policies ON PolicyUserRole.PolicyID = Policies.PolicyID 
INNER JOIN Users ON PolicyUserRole.UserID = Users.UserID 
INNER JOIN [Catalog] ON PolicyUserRole.PolicyID = [Catalog].PolicyID 
ORDER BY 
    1 
    , [Catalog].ItemID 
    , [Catalog].Name 
    , Roles.RoleName 
    , Users.UserName 
+0

Wow, to świetnie, dziękuję! : D Bardzo przydatne! – Learner74

+1

Nie jestem w 100% pewien, jaki typ katalogu 3 reprezentuje - myślę, że może on być użyty dla każdego innego zasobu niewymienionego, np. przesłane pliki. Jest bardzo mało dokumentacji na ten temat. Należy również zauważyć, że bezpośrednie zapytanie do bazy danych ReportServer nie jest obsługiwane przez firmę Microsoft, a schemat i/lub znaczenie tych wartości może ulec zmianie w późniejszych wersjach. – Nathan

+0

Fantastyczne - dziękuję @ Natan! – hurleystylee