SSRS - определить разрешения для отчетов через таблицы базы данных ReportServer? - PullRequest
17 голосов
/ 06 июля 2011

Как программно определить логины / пользователей, которые имеют разрешение на доступ к определенным отчетам SSRS?

Я хочу создать информационное хранилище для заполнения отчетов для менеджеров, которые хотят видеть, кто имеет доступ к определенным отчетам.В настоящее время мы назначаем разрешения группам Active Directory, которые затем используются SQL Server и SSRS для определения разрешений.Я хочу знать, есть ли в метаданных SSRS таблица, которая отслеживает, как назначаются разрешения для отчетов.

Ответы [ 2 ]

28 голосов
/ 07 июля 2011

Это скрипт, который делает большую часть того, что вы хотите, вы можете настроить его под свои нужды:

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   

Вы можете запустить скрипт на сервере отчетов SSRS SQL

1 голос
/ 12 апреля 2012

Приведенный выше скрипт будет работать, но имейте в виду, что он также будет отображать удаленных пользователей, то есть пользователей, которые больше не находятся в Active Directory, что иногда может сбивать с толку.

Кроме того, Microsoft официально не поддерживает запросы к своей базе данных ReportServer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...