Administrando um banco de dados do servidor de relatório

Uma implantação do Reporting Services usa dois bancos de dados relacionais do SQL Server para armazenamento interno. Por padrão, os bancos de dados são nomeados como ReportServer e ReportServerTempdb. O ReportServerTempdb é criado com o banco de dados primário do servidor de relatórios e é usado para armazenar dados temporários, informações de sessão e relatórios em cache.

No Reporting Services, as tarefas de administração de banco de dados incluem o backup e a restauração dos bancos de dados do servidor de relatórios e o gerenciamento das chaves de criptografia usadas para criptografar e descriptografar dados confidenciais.

Para administrar os bancos de dados do servidor de relatórios, o SQL Server fornece uma variedade de ferramentas.

  • Para fazer backup e restaurar, mover ou recuperar um banco de dados do servidor de relatórios, use o SQL Server Management Studio, os comandos Transact-SQL ou os utilitários de prompt de comando de banco de dados. Para obter instruções, consulte Movendo os bancos de dados do servidor de relatório para outro computador nos Manuais Online do SQL Server.

  • Para copiar o conteúdo do banco de dados existente em outro banco de dados do servidor de relatórios, anexe uma cópia de um banco de dados do servidor de relatórios e use-a com uma instância diferente do servidor de relatórios. Se preferir, crie e execute um script que usa chamadas SOAP para recriar o conteúdo do servidor de relatórios em um novo banco de dados. Você pode usar o utilitário rs para executar o script.

  • Para gerenciar conexões entre o servidor de relatórios e o banco de dados do servidor de relatórios e para descobrir qual banco de dados é usado para uma instância específica do servidor de relatórios, use a página Instalação do Banco de Dados da ferramenta Configuração do Reporting Services. Para saber mais sobre a conexão do servidor de relatórios com o banco de dados do servidor de relatórios, consulte Configurando uma conexão do banco de dados do servidor de relatório.

Permissões de logon e de banco de dados do SQL Server

Os bancos de dados do servidor de relatórios são usados internamente pelo servidor de relatórios. As conexões com qualquer banco de dados são feitas pelo serviço Servidor de relatórios. Use a ferramenta Configuração do Reporting Services para configurar a conexão do servidor de relatórios com o banco de dados do servidor de relatórios.

As credenciais para a conexão do servidor de relatórios com o banco de dados podem ser a conta de serviço, uma conta de usuário local ou de domínio do Windows ou um usuário de banco de dados do SQL Server. Você deve escolher uma conta existente para a conexão; o Reporting Services não cria contas para você.

Um logon do SQL Server para o banco de dados do servidor de relatórios é criado automaticamente para a conta especificada.

As permissões para o banco de dados também são configuradas automaticamente. A ferramenta Configuração do Reporting Services atribui o usuário da conta ou do banco de dados às funções Public e RSExecRole para os bancos de dados do servidor de relatórios. O RSExecRole fornece permissões para acessar as tabelas de banco de dados e para executar procedimentos armazenados. O RSExecRole é criado em master e msdb quando o banco de dados do servidor de relatórios é criado. O RSExecRole é um membro da função db_owner para os bancos de dados do servidor de relatórios, permitindo que o servidor de relatórios atualize seu próprio esquema para oferecer suporte ao processo de atualização automática.

Convenções de nomenclatura para os bancos de dados do servidor de relatórios

Ao criar o banco de dados primário, o nome do banco de dados deve seguir as regras especificadas para Identificadores. O nome do banco de dados temporário sempre usa o mesmo nome do banco de dados primário do servidor de relatórios, mas com um sufixo Tempdb. Você não pode escolher um nome diferente para o banco de dados temporário.

A renomeação de um banco de dados do servidor de relatórios não tem suporte porque os bancos de dados do servidor de relatórios são considerados como componentes internos. A renomeação dos bancos de dados do servidor de relatórios gera erros. Especificamente, se você renomear o banco de dados primário, uma mensagem de erro explicará que os nomes de banco de dados estão fora de sincronização. Se você renomear o banco de dados ReportServerTempdb, o seguinte erro interno ocorrerá posteriormente ao executar relatórios:

"Um erro interno ocorreu no servidor de relatórios. Consulte o log de erros para obter mais detalhes. (rsInternalError)

Nome de objeto inválido 'ReportServerTempDB.dbo.PersistedStream'."

Este erro ocorre porque o nome ReportServerTempdb é armazenado internamente e usado pelos procedimentos armazenados para executar operações internas. A renomeação do banco de dados temporário impede o funcionamento correto dos procedimentos armazenados.

Habilitando o isolamento de instantâneo no banco de dados do servidor de relatórios

Você não pode habilitar o isolamento de instantâneo no banco de dados do servidor de relatórios. Se o isolamento de instantâneo for ativado, o seguinte erro aparecerá: “O relatório selecionado não está pronto para exibição. O relatório ainda está sendo renderizado ou um instantâneo de relatório não está disponível.”

Caso a habilitação do isolamento de instantâneo não tenha sido intencional, o atributo pode ter sido definido por outro aplicativo ou o banco de dados modelo pode ter habilitado o isolamento de instantâneo, fazendo com que todos os novos bancos de dados herdem a configuração.

Para desativar o isolamento de instantâneo no banco de dados do servidor de relatórios, inicie o Management Studio, abra uma nova janela de consulta, cole e, em seguida, execute o seguinte script:

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

Sobre as versões de banco de dados

No Reporting Services, informações explícitas sobre a versão de banco de dados não estão disponíveis. No entanto, como as versões de banco de dados sempre são sincronizados com as versões de produto, você pode usar as informações de versão do produto para saber quando a versão de banco de dados foi alterada. As informações de versão do produto do Reporting Services são indicadas pelas informações de versão do arquivo que aparecem nos arquivos de log, nos cabeçalhos de todas as chamadas SOAP e ao conectar-se ao URL do servidor de relatórios (por exemplo, ao abrir um navegador em http://hostlocal/servidorderelatório). Para obter mais informações, consulte Como detectar informações de versão (Reporting Services).