Использование расширения безопасности только для определенных отчетов - PullRequest
1 голос
/ 09 ноября 2010

У моей команды есть служба, развернутая внутри, и частью этой службы является список учетных записей клиентов, хранящихся в таблице sql. SSRS размещен на другом сервере, и у нас есть задания по интеграции, которые [в конечном итоге] будут извлекать эти учетные записи клиентов (вместе с дополнительной информацией) из наших 3 производственных сред в эту базу данных SSRS.

Также в этой базе данных SSRS я создаю новую таблицу, которая будет отображать учетные записи домена и учетные записи клиентов. Мне нужна эта таблица, чтобы я мог отфильтровать свой отчет на основании того, какие учетные записи клиентов могут видеть зарегистрированные пользователи.

Пока довольно просто.

Следующее требование этого заключается в том, что мне нужно ограничить доступ к самому отчету. Я понимаю, что обычно я мог бы использовать группу безопасности для этого, но это привело бы к двум отдельным расположениям для управления разрешениями для одного ресурса, и это то, чего я хочу избежать. Решение, которое я ищу, состоит в том, чтобы создать расширение безопасности для проверки вошедших в систему пользователей по базе данных, предоставляя им доступ к папке / отчету, если они существуют в таблице. После этого я снова смогу использовать эту же таблицу для фильтрации результатов. В чем я не уверен, так это 1) если это лучшее решение и 2) могу ли я использовать расширение безопасности только для МОЕЙ части сайта. На этом сайте есть много других пользователей и отчетов, с которыми я не имею дела и не хочу конфликтовать с ними.

Ответы [ 3 ]

1 голос
/ 09 ноября 2010

Не могли бы вы заполнить таблицу БД автоматически из AD?Тогда вы можете использовать стандартную безопасность Windows, но все же выполнять администрирование только в Active Directory.

0 голосов
/ 09 ноября 2010

Не можете ли вы ограничить доступ к отчету с помощью группы безопасности (либо в собственной папке, либо в разрешениях уровня отчета).Используйте проверку подлинности Windows в подключении к источнику данных и отфильтруйте отчет о получении имени пользователя с помощью функции sql ORIGINAL_LOGIN?

0 голосов
/ 09 ноября 2010

Вы можете установить внутренний параметр отчета, называемый чем-то вроде UserID, и установить его значение по умолчанию равным незапрошенному выражению =User!UserID.(Этот идентификатор пользователя можно выбрать из списка глобальных переменных в диалоговом окне «Редактировать выражение».)

Затем можно добавить декартово / перекрестное объединение к вашей таблице пользователей в запросе с условием выбора на основе вашего внутреннегопараметр отчета - например,... and UserTable.ID = @UserID.Это гарантирует, что записи не будут возвращены, если отчет выполнялся неавторизованным пользователем.

Обратите внимание, что поле User!UserID будет возвращать пользователя только для интерактивных отчетов - в запланированных отчетах это будет учетная записьдля службы планирования.

...