2013-06-04 2 views
5

Есть ли способ, которым я могу перечислить (используя отчет SSRS или запрос через код SQL), безопасность Username или Group, которая была назначена для корневых папок, подпапок или отчетов?SQL Server Reporting Services 2008 R2 - Безопасность в папках и отчетах

Мне было предложено идентифицировать аудиторию, в которой группы AD имеют доступ ко всем корневым папкам и подпапкам в этой корневой папке или даже к отдельному уровню отчета - о том, кто имеет доступ!

Как выполнить этот запрос?

ответ

11

Вы можете запросить базу данных ReportServer для этой информации, например.

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

Ничего себе, это здорово! : D Очень полезно! – Learner74

+1

Я не уверен на 100%, что представляет собой тип каталога 3 - я думаю, он может быть использован для любого другого ресурса, не указанного в списке, например. загруженные файлы. В этом очень мало документации. Также обратите внимание, что запрос базы данных ReportServer напрямую не поддерживается Microsoft, и схема и/или значение этих значений могут измениться в более поздних версиях. – Nathan

+0

Фантастический - спасибо @ Натан! – hurleystylee

 Смежные вопросы

  • Нет связанных вопросов^_^