Administrar una base de datos del servidor de informes (Modo nativo de SSRS)

Una implementación de Reporting Services usa dos bases de datos relacionales de SQL Server para almacenamiento interno. De forma predeterminada, las bases de datos se denominan ReportServer y ReportServerTempdb. ReportServerTempdb se crea con la base de datos principal del servidor de informes y se usa para almacenar datos temporales, información de sesión e informes almacenados en caché.

En Reporting Services, entre las tareas de administración de bases de datos se incluyen la copia de seguridad y restauración de bases de datos del servidor de informes. Las tareas también incluyen la administración de las claves de cifrado que se usan para cifrar y descifrar datos confidenciales.

Para administrar las bases de datos del servidor de informes, SQL Server proporciona una amplia variedad de herramientas.

  • Puede usar SQL Server Management Studio, los comandos Transact-SQL o las utilidades del símbolo del sistema de la base de datos para:

    • Realizar copias de seguridad de las bases de datos del servidor de informes y restaurarlas
    • Mover la base de datos del servidor de informes
    • Recuperación de una base de datos del servidor de informes

    Para obtener más información, consulte Mover las bases de datos del servidor de informes a otro equipo (modo nativo de SSRS).

  • Para copiar el contenido de una base de datos existente en otra base de datos del servidor de informes, puede adjuntar una copia de una base de datos del servidor de informes y utilizarla con una instancia distinta del servidor de informes. También puede crear y ejecutar un script que utilice llamadas SOAP para volver a crear contenido del servidor de informes en una nueva base de datos. Puede usar la utilidad rs para ejecutar el script.

  • Puede utilizar la página Configuración de la base de datos de la herramienta Configuración de Reporting Services para administrar las conexiones entre el servidor de informes y la base de datos del servidor de informes. También puede usarlo para averiguar qué base de datos se usa para una instancia determinada del servidor de informes. Para obtener más información sobre la conexión del servidor de informes a la base de datos del servidor de informes, consulte Configurar una conexión a la base de datos del servidor de informes (Administrador de configuración del servidor de informes).

Permisos de inicio de sesión y de base de datos de SQL Server

Las bases de datos del servidor de informes son utilizadas internamente por este. El servicio del servidor de informes realiza conexiones a cualquier base de datos. Puede usar la herramienta de configuración de Reporting Services para configurar la conexión del servidor de informes a la base de datos del servidor de informes.

Las credenciales para la conexión del servidor de informes a la base de datos pueden ser las de la cuenta de servicio, una cuenta de usuario de dominio o local de Windows o de un usuario de la base de datos de SQL Server. Debe elegir una cuenta existente para la conexión. Reporting Services no crea cuentas automáticamente.

Automáticamente se creará para usted un inicio de sesión de SQL Server a la base de datos del servidor de informes para la cuenta que haya especificado.

Los permisos a la base de datos también se configuran automáticamente. La herramienta de configuración de Reporting Services asignará la cuenta o usuario de la base de datos a los roles Public y RSExecRole para las bases de datos del servidor de informes. RSExecRole otorga permisos para tener acceso a las tablas de base de datos y para ejecutar procedimientos almacenados. El rol RSExecRole se crea en la base de datos principal y msdb al crear la base de datos del servidor de informes. RSExecRole es miembro del rol db_owner para las bases de datos del servidor de informes, lo que permite al servidor de informes actualizar su propio esquema que admite un proceso de actualización automática.

Convenciones de nomenclatura para las bases de datos del servidor de informes

Cuando se crea la base de datos principal, su nombre debe seguir las reglas especificadas para los Identificadores de bases de datos. El nombre de la base de datos temporal utiliza siempre el mismo nombre que la base de datos principal del servidor de informes pero con el sufijo Tempdb. No puede elegir un nombre diferente para la base de datos temporal.

No se permite cambiar el nombre de una base de datos del servidor de informes porque las bases de datos del servidor de informes se consideran componentes internos. Si se cambia el nombre de las bases de datos del servidor de informes, se producen errores. Específicamente, si se cambia el nombre de la base de datos principal, un mensaje de error explica que los nombres de las bases de datos no están sincronizados. Si cambia el nombre de la base de datos ReportServerTempdb, se produce el siguiente error interno más adelante al ejecutar informes:

"Error interno en el servidor de informes. Para más información, consulte el código de error. (rsInternalError)

Nombre de objeto no válido ReportServerTempDB.dbo.PersistedStream".

Este error se debe a que el nombre ReportServerTempdb se almacena internamente y lo utilizan los procedimientos almacenados para realizar operaciones internas. Si se cambia el nombre de la base de datos temporal, no funcionarán correctamente los procedimientos almacenados.

Habilitar el aislamiento de instantánea en la base de datos del servidor de informes

No puede habilitar el aislamiento de instantánea en la base de datos del servidor de informes. Si está activado el aislamiento de instantánea, se producirá el siguiente error: "El informe seleccionado no está listo para su visualización. Aún se está representando o no hay disponible una instantánea de informe".

Si no habilitó explícitamente el aislamiento de instantánea, puede que el atributo lo estableciera otra aplicación o que la base de datos modelo tenga el aislamiento de instantánea habilitado, haciendo que todas las bases de datos nuevas heredaran el valor.

Para desactivar el aislamiento de instantánea en la base de datos del servidor de informes, inicie Management Studio, abra una nueva ventana de consulta y pegue y después ejecute el script siguiente:

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  

Acerca de las versiones de base de datos

En Reporting Services no se dispone de información explícita acerca de la versión de la base de datos. Sin embargo, como las versiones de la base de datos siempre están sincronizadas con las versiones de los productos, se puede utilizar la información de la versión del producto para saber cuándo ha cambiado la versión de la base de datos. La información de versión de producto de Reporting Services se indica a través de la información de versión de archivo que aparece en los archivos de registro, en los encabezados de todas las llamadas SOAP y al conectarse con la dirección URL del servidor de informes (por ejemplo, al abrir un explorador en https://localhost/reportserver).