Параметр членства в роли базы данных для источника данных диспетчера отчетов - PullRequest
2 голосов
/ 10 февраля 2012

Я занимаюсь разработкой отчетов служб отчетов SQL Server (SSRS) для SQL Server 2008 R2 и использую диспетчер отчетов в качестве метода демонстрации и тестирования отчетов. Я ищу способ разрешить пользователям одного домена подключаться к диспетчеру отчетов и запускать отчеты через браузер (не SharePoint), не предоставляя пользователю слишком большой доступ к источнику данных. В настоящее время каждый пользователь указан в качестве db_owner для базы данных, с которой связаны наборы данных и источник данных. Я хотел бы ограничить этот доступ, и я попробовал db_datareader, но этот уровень не позволяет пользователю запускать отчеты и выдает пользователю эту ошибку: «Невозможно создать соединение с источником данных« DBname ». (RsErrorOpeningConnection)».

Мой метод добавления пользователя на сайт диспетчера отчетов. Я выбираю вкладку «Безопасность» в разделе «Настройки сайта», а затем выбираю «Назначение новой роли», добавляя пользователя в качестве «Системного пользователя». Затем я выбираю «Настройки папки» на панели инструментов и снова выбираю «Назначение новой роли», добавляя пользователя в качестве «Браузера». Я пытался добавить пользователя в качестве «Менеджера контента», но у него по-прежнему возникает та же ошибка, когда речь идет об источнике данных.

Мой метод добавления пользователя к источнику данных: выберите новый логин на вкладке «Безопасность» для сервера, добавьте домен \ имя пользователя в «Имя для входа:», используйте аутентификацию Windows и измените базу данных по умолчанию с главной на базу данных, которая является источником данных отчетов. Затем я выбираю «Отображение пользователя» и ставлю галочку рядом с базой данных, которая является источником данных. В разделе «Членство в роли базы данных для: имя_БД» я выбираю db_owner, а public уже выбран. Я включил скриншоты ниже. Мой вопрос заключается в том, какое «членство в роли базы данных» я могу использовать для SSRS и диспетчера отчетов, который не будет таким широким, как db_owner, и будет иметь наилучшую защиту? Я пробовал db_datareader, но пользователь не может подключиться к источнику данных при запуске отчета.

Я исследовал этот вопрос, но не нашел каких-либо подробностей, позволяющих добавить пользователя в качестве db_owner, как я описал. MSDN действует так, как будто настройки в диспетчере отчетов - это все, что нужно настроить для доступа пользователя / отчета к источнику данных. Я попытался использовать настройки диспетчера отчетов только с обоими настройками для источника данных, общего доступа и встроенного без удачи.

Заранее спасибо

1 Ответ

2 голосов
/ 10 февраля 2012

Как правило, источники данных в SSRS будут настроены на использование фиксированной учетной записи, либо учетной записи Windows, либо аутентификации SQL. Этой учетной записи следует предоставить минимальные права доступа к базе данных: db_datareader является общим.

Затем безопасность отчета контролируется с помощью диспетчера отчетов, как описано выше. это устраняет необходимость в изменении безопасности самой базы данных с изменениями в разрешениях пользователя.

Но подход, который вы описали выше, также должен работать. Ошибка, которую вы видите, когда пользователь имеет доступ к db_datareader, удивительна, если ваш запрос является стандартным запросом SQL, выбираемым из таблиц. Если вы используете хранимые процедуры, вам также необходимо предоставить доступ к ним. Используйте тестовую учетную запись пользователя, для которой установлено значение db_datareader; проверьте, можете ли вы подключиться и выполнить свой запрос через SQL Server Management Studio.

В зависимости от ваших требований безопасности, я бы использовал выделенную учетную запись для доступа к базе данных из отчетов, скажем «ReportReader». Разработайте и протестируйте свои отчеты, обращающиеся к базам данных от имени этого пользователя, и убедитесь, что пользователь имеет минимальный доступ, только для чтения и / или ограничен только таблицами или процедурами, которые ему необходимо выполнить.

Учетные данные, используемые для доступа к базе данных, задаются в свойствах источника данных. Это одна из причин, по которой часто используются общие источники данных, а отчеты связаны с общими источниками данных: Data source properties

На снимке экрана показана используемая учетная запись с проверкой подлинности на сервере SQL. Это также может быть фиксированная учетная запись Active Directory; в этом случае установите флажок «Использовать как учетные данные Windows, когда ...».

...