Администрирование базы данных сервера отчетов (собственный режим SSRS)

В развертывании служб Reporting Services в качестве внутреннего хранилища используются две реляционные базы данных SQL Server. По умолчанию базы данных называются ReportServer и ReportServerTempdb. ReportServerTempdb создается с базой данных сервера отчетов-источника и используется для хранения временных данных, сведений о сеансе и кэшированных отчетов.

В службах Reporting Services задачи администрирования баз данных включают резервное копирование и восстановление баз данных сервера отчетов. Задачи также включают управление ключами шифрования, которые используются для шифрования и расшифровки конфиденциальных данных.

Для администрирования баз данных сервера отчетов SQL Server предоставляет различные средства.

  • Для этого можно использовать SQL Server Management Studio, команды Transact-SQL или служебные программы командной строки базы данных:

    • Резервное копирование или восстановление базы данных сервера отчетов
    • Перемещение базы данных сервера отчетов
    • Восстановление базы данных сервера отчетов

    Дополнительные сведения см. в разделе "Перемещение баз данных сервера отчетов" на другой компьютер (собственный режим SSRS).

  • Чтобы скопировать содержимое существующей базы данных в другую базу данных сервера отчетов, можно присоединить копию базы данных сервера отчетов и использовать ее с другим экземпляром сервера отчетов. Либо можно создать и выполнить скрипт, использующий вызовы SOAP для повторного создания содержимого сервера отчетов в новой базе данных. Для выполнения скрипта можно использовать служебную программу rs .

  • Вы можете использовать страницу "Настройка базы данных" в средстве настройки служб Reporting Services для управления подключениями между сервером отчетов и базой данных сервера отчетов. Вы также можете узнать, какая база данных используется для конкретного экземпляра сервера отчетов. Дополнительные сведения о подключении сервера отчетов к базе данных сервера отчетов см. в статье Настройка подключения к базе данных сервера отчетов (Диспетчер конфигурации сервера отчетов).

Разрешения для входа в SQL Server и базы данных

Базы данных сервера отчетов используются сервером отчетов для внутренних целей. Соединения с любой базой данных устанавливаются службой сервера отчетов. Чтобы настроить соединение сервера отчетов с базой данных сервера отчетов, применяется средство настройки служб Reporting Services.

Учетными данными для соединения сервера отчетов с базой данных может служить учетная запись службы, учетная запись локального пользователя Windows или пользователя домена, а также учетная запись пользователя базы данных SQL Server. Для подключения необходимо выбрать существующую учетную запись. Службы Reporting Services не создают учетные записи для вас.

Вход SQL Server в базу данных сервера отчетов создается автоматически для указанной учетной записи.

Настройка разрешений для этой базы данных также выполняется автоматически. Средство настройки служб Reporting Services назначает учетной записи или пользователя базы данных ролям Public и RSExecRole для баз данных сервера отчетов. Роль RSExecRole предоставляет разрешения для доступа к таблицам баз данных и выполнения хранимых процедур. RSExecRole создается в базе данных-источнике и msdb при создании базы данных сервера отчетов. RSExecRole является членом роли db_owner для баз данных сервера отчетов, позволяя серверу отчетов обновлять собственную схему в поддержке процесса автоматического обновления.

Соглашения об именовании для баз данных сервера отчетов

При создании базы данных-источника имя базы данных должно соответствовать правилам, указанным для идентификаторов базы данных. Имя временной базы данных всегда совпадает с именем основной базы данных сервера отчетов с добавлением суффикса Tempdb. Вы не можете выбрать другое имя временной базы данных.

Переименование базы данных сервера отчетов не поддерживается, так как базы данных сервера отчетов считаются внутренними компонентами. Переименование баз данных сервера отчетов может вызвать ошибки. В частности, при переименовании базы данных-источника сообщение об ошибке объясняет, что имена баз данных не синхронизированы. При переименовании базы данных ReportServerTempdb при запуске отчетов возникает следующая внутренняя ошибка:

«Произошла внутренняя ошибка на сервере отчетов. Дополнительные сведения см. в журнале ошибок. (rsInternalError)

Недопустимое имя ReportServerTempDB.dbo.PersistedStreamобъекта.

Эта ошибка возникает, так как ReportServerTempdb имя хранится внутри и используется хранимыми процедурами для выполнения внутренних операций. Переименование временной базы данных предотвращает правильную работу хранимых процедур.

Включение изоляции моментальных снимков в базе данных сервера отчетов

Вы не можете включить изоляцию моментальных снимков в базе данных сервера отчетов. Если изоляция моментальных снимков включена, возникает следующая ошибка: "Выбранный отчет не готов к просмотру. Отчет по-прежнему отображается или моментальный снимок отчета недоступен".

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

Чтобы отменить изоляцию моментального снимка в базе данных сервера отчетов, в среде Management Studio откройте новое окно запроса, вставьте и запустите следующий скрипт:

ALTER DATABASE ReportServer  
SET ALLOW_SNAPSHOT_ISOLATION OFF  
ALTER DATABASE ReportServerTempdb  
SET ALLOW_SNAPSHOT_ISOLATION OFF  
ALTER DATABASE ReportServer  
SET READ_COMMITTED_SNAPSHOT OFF  
ALTER DATABASE ReportServerTempDb  
SET READ_COMMITTED_SNAPSHOT OFF  

Сведения о версиях базы данных

В службах Reporting Services явные сведения о версии базы данных недоступны. Тем не менее, так как версии базы данных всегда синхронизируются с версиями продукта, можно использовать сведения о версии продукта, чтобы сообщить об изменении версии базы данных. Информация о версии продукта для служб Reporting Services отображается в виде информации о версии файла, которая появляется в файлах журналов, заголовках всех вызовов SOAP, а также в URL-адресе сервера отчетов (например, при открытии в браузере адреса https://localhost/reportserver).