Как создать роль RSExecRole
Службы Службы Reporting Services используют стандартную роль базы данных с именем RSExecRole, чтобы предоставить серверу отчетов разрешения в базе данных сервера отчетов. Роль RSExecRole создается автоматически с базой данных сервера отчетов. Как правило, никогда не следует изменять ее или назначать другим пользователям. Однако при перемещении базы данных сервера отчетов на новый или иной компонент SQL Server Database Engine необходимо создать повторно эту роль в системных базах данных master и msdb.
С помощью следующих инструкций выполняются следующие шаги.
Создание и предоставление роли RSExecRole в системной базе данных master.
Создание и предоставление роли RSExecRole в системной базе данных msdb.
Примечание |
---|
Инструкции в этом разделе предназначены для пользователей, которые не хотят запускать сценарий или писать код инструментария WMI для предоставления базы данных сервера отчетов. Если предстоит управлять большим развертыванием и регулярно перемещать базы данных, необходимо подготовить сценарий для автоматизации этих шагов. Дополнительные сведения см. в разделе Поставщик WMI для служб Reporting Services. |
Перед началом
Создайте резервную копию ключей шифрования, чтобы их можно было восстановить после перемещения базы данных. Этот шаг не влияет напрямую на возможность создавать и предоставлять роль RSExecRole, но резервная копия ключей необходима, чтобы проверить работу. Дополнительные сведения см. в разделе Создание резервных копий и восстановление ключей шифрования.
Проверьте, что выполнен вход в систему под учетной записью пользователя, у которой есть разрешения sysadmin на экземпляре SQL Server.
Проверьте, что служба агента SQL Server установлена и работает на экземпляре компонента Database Engine, который планируется использовать.
Присоедините базы данных reportservertempdb и reportserver. Не требуется присоединять базы данных, чтобы создать собственно роль, но они должны быть присоединены, прежде чем удастся проверить работу.
Инструкции для создания роли RSExecRole вручную предназначены для использования в контексте миграции установки сервера отчетов. Важные задачи, такие как резервное копирование и перемещение базы данных сервера отчетов, не рассматриваются в данном разделе, но описаны в документации по компоненту Database Engine. Дополнительные сведения обо всех задачах в процессе миграции см. в разделе Миграция (службы Reporting Services).
Создание роли RSExecRole в базе данных master
Для поддержки запланированных операций службы Службы Reporting Services используют расширенные хранимые процедуры для службы агента SQL Server. Следующие шаги поясняют, как предоставить разрешения EXECUTE для процедур роли RSExecRole.
Создание роли RSExecRole в системной базе данных master с помощью среды Management Studio
Запустите среду SQL Server Management Studio и подключитесь к экземпляру компонента Database Engine, на котором размещается база данных сервера отчетов.
Откройте узел Базы данных.
Откройте узел Системные базы данных.
Откройте узел master.
Откройте Безопасность.
Откройте Роли.
Щелкните правой кнопкой мыши Роли базы данных и выберите пункт Создать роль базы данных. Отображается страница «Общие».
В поле Имя роли введите RSExecRole.
В поле Владелец введите DBO.
Щелкните Защищаемые объекты.
Нажмите кнопку Поиск. Отображается диалоговое окно Добавление объектов. Параметр Определенные объекты выбран по умолчанию.
Нажмите кнопку ОК. Появится диалоговое окно Выбор объектов.
Щелкните Типы объектов.
Щелкните Расширенные хранимые процедуры.
Нажмите кнопку ОК.
Щелкните Обзор.
Прокрутите список расширенных хранимых процедур и выберите следующие:
xp_sqlagent_enum_jobs
xp_sqlagent_is_starting
xp_sqlagent_notify
Нажмите кнопку ОК, а затем еще раз кнопку ОК.
В строке Выполнить в столбце Предоставить установите флажок и нажмите кнопку ОК.
Повторите для каждой из оставшихся хранимых процедур. Роли RSExecRole должны быть предоставлены разрешения EXECUTE для всех трех хранимых процедур.
Создание роли RSExecRole в базе данных msdb
Службы Reporting Services используют хранимые процедуры для службы агента SQL Server и получают сведения о заданиях из системных таблиц для поддержки запланированных действий. Следующие шаги поясняют, как предоставить роли RSExecRole разрешения EXECUTE для процедур и разрешений SELECT в таблицах.
Создание роли RSExecRole в системной базе данных msdb
Повторите аналогичные шаги, чтобы предоставить разрешения хранимым процедурам и таблицам в базе данных msdb. Чтобы упростить шаги, обрабатывайте хранимые процедуры и таблицы отдельно.
Откройте узел MSDB.
Откройте Безопасность.
Откройте Роли.
Щелкните правой кнопкой мыши Роли базы данных и выберите пункт Создать роль базы данных. Отображается страница «Общие».
В поле «Имя роли» введите RSExecRole.
В поле «Владелец» введите DBO.
Щелкните Защищаемые объекты.
Нажмите кнопку Добавить. Отображается диалоговое окно Добавление объектов. Параметр Выбрать объекты выбран по умолчанию.
Нажмите кнопку ОК.
Щелкните Типы объектов.
Щелкните Хранимые процедуры.
Нажмите кнопку ОК.
Нажмите кнопку Обзор.
Прокрутите список объектов и выберите следующие:
sp_add_category
sp_add_job
sp_add_jobschedule
sp_add_jobserver
sp_add_jobstep
sp_delete_job
sp_help_category
sp_help_job
sp_help_jobschedule
sp_verify_job_identifiers
Нажмите кнопку ОК, а затем еще раз кнопку ОК.
Выберите первую хранимую процедуру: sp_add_category.
В строке Выполнить в столбце Предоставить установите флажок и нажмите кнопку ОК.
Повторите действия для каждой оставшейся хранимой процедуры. Роли RSExecRole должны быть предоставлены разрешения EXECUTE для всех десяти хранимых процедур.
На вкладке «Защищаемые объекты» повторно нажмите кнопку Добавить. Отображается диалоговое окно Добавление объектов. Параметр Выбрать объекты выбран по умолчанию.
Нажмите кнопку ОК.
Щелкните Типы объектов.
Щелкните Таблицы.
Нажмите кнопку ОК.
Нажмите кнопку Обзор.
Прокрутите список объектов и выберите следующие:
syscategories
sysjobs
Нажмите кнопку ОК, а затем еще раз кнопку ОК.
Выберите первую таблицу: syscategories.
В строке Выбрать в столбце Предоставить установите флажок и нажмите кнопку ОК.
Повторите для таблицы sysjobs. Роли RSExecRole должны быть предоставлены разрешения SELECT для обеих таблиц.
Переместите базу данных сервера отчетов
После создания ролей можно переместить базу данных сервера отчетов на новый экземпляр SQL Server. Дополнительные сведения см. в разделе Перемещение баз данных сервера отчетов на другой компьютер.
Если компонент Database Engine обновляется до SQL Server 2008, можно обновить его до или после перемещения базы данных.
База данных сервера отчетов обновляется автоматически до уровня SQL Server 2008 при подключении к ней сервера отчетов. Для обновления этой базы данных не требуется никаких конкретных шагов.
Восстановление ключей шифрования и проверка проделанной работы
Если имеются присоединенные базы данных сервера отчетов, можно выполнить следующие шаги для проверки работы.
Проверка работоспособности сервера отчетов после перемещения базы данных
Запустите программу настройки служб Reporting Services и подключитесь к серверу отчетов.
Щелкните База данных.
Нажмите кнопку Изменить базу данных.
Щелкните Выбрать существующую базу данных сервера отчета.
Введите имя экземпляра сервера компонента Database Engine. Если базы данных сервера отчетов подключены к именованному экземпляру, необходимо ввести имя экземпляра в следующем формате: <имя_сервера>\<имя_экземпляра>.
Нажмите кнопку Проверить соединение.
Нажмите кнопку Далее.
На странице «База данных» выберите базу данных сервера отчетов.
Нажмите кнопку Далее, чтобы завершить работу мастера.
Щелкните Ключи шифрования.
Нажмите кнопку Восстановить.
Выберите файл ключа для строгого имени (SNK), который содержит резервную копию симметричного ключа, используемого для расшифровки сохраненных учетных данных и сведений о соединении с базой данных сервера отчетов.
Введите пароль и нажмите кнопку ОК.
Нажмите кнопку URL-адрес диспетчера отчетов.
Щелкните ссылку, чтобы открыть диспетчер отчетов. Будут отображены элементы сервера отчетов из базы данных сервера отчетов.
См. также