Partilhar via


Administrar um banco de dados de servidor de relatório (modo nativo do SSRS)

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. ReportServerTempdb é criado com o banco de dados do servidor de relatório primário e é usado para armazenar dados temporários, informações de sessão e relatórios armazenados em cache.

No Reporting Services, as tarefas de administração de banco de dados incluem fazer backup e restaurar os bancos de dados do servidor de relatório. As tarefas também incluem o gerenciamento das chaves de criptografia usadas para criptografar e descriptografar dados confidenciais.

Para administrar os bancos de dados do servidor de relatório, o SQL Server fornece diversas ferramentas.

  • Você pode usar o SQL Server Management Studio, os comandos Transact-SQL ou os utilitários de prompt de comando do banco de dados para:

    • Fazer backup ou restaurar o banco de dados do servidor de relatório
    • Mover um banco de dados do servidor de relatório
    • Recuperar um banco de dados do servidor de relatório

    Para obter mais informações, consulte Mover os bancos de dados do servidor de relatório para outro computador (modo nativo do SSRS).

  • 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.

  • Você pode usar a página Configuração do Banco de Dados na ferramenta Configuração do Reporting Services para gerenciar conexões entre o servidor de relatório e o banco de dados do servidor de relatório. Você também pode usá-lo para descobrir qual banco de dados é usado para uma instância específica do servidor de relatório. Para saber mais sobre a conexão do servidor de relatório com o banco de dados do servidor de relatório, confira Configurar uma conexão de banco de dados do servidor de relatório (Gerenciador de Configurações do Servidor de Relatório).

Logon do SQL Server e permissões de banco de dados

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ório com o banco de dados do servidor de relatório.

As credenciais para a conexão do servidor de relatório 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 do 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ê.

Uma entrada do SQL Server no banco de dados do servidor de relatório é criada 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ório. A função RSExecRole fornece permissões para acessar as tabelas do banco de dados e para executar os procedimentos armazenados. RSExecRole é criado no banco de dados primário e no msdb quando você cria o banco de dados do servidor de relatório. A função RSExecRole é um membro da função db_owner para os bancos de dados do servidor de relatório, permitindo que o servidor de relatório atualize seu próprio esquema para dar 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 de banco de dados. 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. Para obter mais informações, consulte o log de erros. (rsInternalError)

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

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

Habilitar o isolamento de snapshot no banco de dados do servidor de relatório

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 estiver ativado, você encontrará o seguinte erro: "O relatório selecionado não está pronto para exibição. O relatório ainda está sendo renderizado ou um instantâneo do relatório não está disponível."

Se você não habilitou propositalmente o isolamento de instantâneo, o atributo poderá ter sido definido por outro aplicativo ou o banco de dados modelo poderá ter o isolamento de instantâneo habilitado, fazendo com que todos os novos bancos de dados herdassem 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 do 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 exibidas nos arquivos de log, nos cabeçalhos de todas as chamadas SOAP e ao conectar-se à URL do servidor de relatório (por exemplo, ao abrir um navegador em https://localhost/reportserver).