Администрирование баз данных сервера отчетов
В развертывании служб Службы Reporting Services в качестве внутреннего хранилища используются две реляционные базы данных SQL Server. По умолчанию эти базы данных имеют имена ReportServer и ReportServerTempdb. База данных ReportServerTempdb создается вместе с основной базой данных сервера отчетов и используется для хранения временных данных, сведений о сеансе и кэшированных отчетов.
В службах Службы Reporting Services задачи администрирования баз данных включают создание резервных копий и восстановление из копии баз данных сервера отчетов, а также управление ключами шифрования, применяемыми для шифрования и расшифровки конфиденциальных данных.
SQL Server предоставляет различные средства для администрирования баз данных сервера отчетов.
Чтобы создать резервную копию или восстановить базу данных сервера отчетов, переместить базу данных сервера отчетов или восстановить базу данных сервера отчетов, можно использовать среду SQL Server Management Studio, команды Transact-SQL или программы базы данных с командной строкой. Инструкции см. в разделе Перемещение баз данных сервера отчетов на другой компьютер электронной документации по SQL Server.
Чтобы скопировать содержимое существующей базы данных в другую базу данных сервера отчетов, можно присоединить копию базы данных сервера отчетов и использовать ее с другим экземпляром сервера отчетов. Либо можно создать и выполнить скрипт, использующий вызовы SOAP для повторного создания содержимого сервера отчетов в новой базе данных. Используйте служебную программу rs для выполнения скрипта.
Чтобы управлять соединениями между сервером отчетов и его базой данных и найти, какая база данных используется для экземпляра сервера отчетов, можно использовать страницу «Установка базы данных» средства настройки служб Службы Reporting Services. Дополнительные сведения о подключении сервера отчетов к базе данных сервера отчетов см. в разделе Настройка соединения с базой данных сервера отчетов.
Разрешения на вход в систему и доступ к базам данных SQL Server
Базы данных сервера отчетов используются сервером отчетов для внутренних целей. Соединения с любой базой данных устанавливаются службой сервера отчетов. Чтобы настроить соединение сервера отчетов с базой данных сервера отчетов, применяется средство настройки служб Службы Reporting Services.
Учетными данными для соединения сервера отчетов с базой данных может служить учетная запись службы, учетная запись локального пользователя Windows или пользователя домена, а также учетная запись пользователя базы данных SQL Server. Для соединения необходимо выбрать существующую учетную запись; службы Службы Reporting Services не создают учетные записи для пользователей.
Для указанной учетной записи автоматически создается имя входа SQL Server, позволяющее подключиться к базе данных сервера отчетов.
Настройка разрешений для этой базы данных также выполняется автоматически. Средство настройки служб Reporting Services делает эту учетную запись или пользователя базы данных членом ролей Public и RSExecRole для баз данных сервера отчетов. Роль RSExecRole предоставляет разрешения для доступа к таблицам баз данных и выполнения хранимых процедур. Роль RSExecRole создается в базах данных master и msdb при создании базы данных сервера отчетов. Пользователь RSExecRole является членом роли db_owner для баз данных сервера отчетов, что позволяет серверу отчетов обновлять свою собственную схему для поддержки процесса автоматического обновления.
Соглашения об именах для баз данных сервера отчетов
Имя базы данных-источника должно соответствовать правилам, определенным для Идентификаторы. Имя временной базы данных всегда совпадает с именем основной базы данных сервера отчетов с добавлением суффикса Tempdb. Невозможно выбрать другое имя для временной базы данных.
Переименование базы данных сервера отчетов не поддерживается, так как базы данных сервера отчетов рассматриваются как внутренние компоненты. Переименование баз данных сервера отчетов может вызвать ошибки. А именно: при переименовании базы данных-источника сообщение об ошибке говорит о том, что имена баз данных не синхронизированы. При переименовании базы данных ReportServerTempdb позже при запуске отчетов возникает следующая внутренняя ошибка.
«Произошла внутренняя ошибка на сервере отчетов. Дополнительные подробности см. в журнале ошибок. (rsInternalError)
Недопустимое имя объекта "ReportServerTempDB.dbo.PersistedStream"».
Причина этой ошибки заключается в том, что имя ReportServerTempdb хранится внутренне и используется хранимыми процедурами для выполнения внутренних операций. Переименование временной базы данных приведет к неправильной работе хранимых процедур.
Включение изоляции моментального снимка в базе данных сервера отчетов
В базе данных сервера отчетов нельзя включить изоляцию моментального снимка. Если изоляция моментального снимка включена, будет возникать следующая ошибка: «Выбранный отчет не готов для просмотра. Выполняется подготовка отчета к отображению, или недоступен моментальный снимок отчета.».
Даже если изоляция моментального снимка специально не была включена, этот атрибут может быть установлен другим приложением или изоляция моментального снимка включена в базе данных model, а это приводит к тому, что все новые базы данных наследуют эту настройку.
Чтобы отменить изоляцию моментального снимка в базе данных сервера отчетов, в среде 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). Дополнительные сведения см. в разделе Как получить сведения о версии (службы Reporting Services).
См. также