SSRS. Определить разрешения отчетов через таблицы базы данных ReportServer?
Как программно определить логины/пользователи, имеющие разрешение на доступ к определенным отчетам SSRS?
Я хочу создать datamart, чтобы заполнить отчеты для менеджеров, которые хотят видеть, кто имеет доступ к определенным отчетам. В настоящее время мы назначаем разрешения для групп Active Directory, которые затем используются SQL Server и SSRS для определения разрешений. Я хочу знать, есть ли таблица в метаданных SSRS, которая отслеживает, как разрешения назначаются отчетам.
Ответы
Ответ 1
Это script, который делает большую часть того, что вы хотите, вы можете настроить его на свои нужды:
select C.UserName, D.RoleName, D.Description, E.Path, E.Name
from dbo.PolicyUserRole A
inner join dbo.Policies B on A.PolicyID = B.PolicyID
inner join dbo.Users C on A.UserID = C.UserID
inner join dbo.Roles D on A.RoleID = D.RoleID
inner join dbo.Catalog E on A.PolicyID = E.PolicyID
order by C.UserName
вы можете запустить script в SSRS SQL ReportServer
Ответ 2
Вышеупомянутый script будет работать, но имейте в виду, что он также отображает удаленных пользователей, то есть пользователей, которые больше не находятся в Active Directory, которые иногда могут сбивать с толку.
Кроме того, Microsoft официально не поддерживает любые запросы к своей базе данных ReportServer.
Ответ 3
Как бы вы пошли дальше и выяснили, какие пользователи AD входят в какие группы AD?