Relatórios personalizados no Management Studio

No SQL Server Management Studio, muitos nós do Pesquisador de Objetos exibem um conjunto de relatórios padrão criados pela Microsoft. Esses relatórios resumem as informações de servidor que costumam ser solicitadas. A partir do SQL Server 2005 Service Pack 2, os administradores podem executar relatórios personalizados que foram criados no SSDT (SQL Server Data Tools) do Management Studio.

Implementação

Relatórios personalizados são armazenados como arquivos de definição de relatório (.rdl) e criados na linguagem RDL (Report Definition Language). A RDL contém informações de layout e recuperação de dados de um relatório no formato XML. Ela consiste em um esquema aberto. Os desenvolvedores podem estender a RDL com atributos e elementos adicionais. Os relatórios podem executar qualquer instrução Transact-SQL válida dentro do relatório.

Se o Pesquisador de Objetos estiver conectado a um servidor, os relatórios personalizados poderão ser executados no contexto da seleção atual do Pesquisador de Objetos se fizerem referência a parâmetros de relatório desse nó. Desse modo, um relatório pode usar o contexto atual (como o banco de dados atual) ou um contexto consistente (especificando, por exemplo, um banco de dados designado como parte da instrução Transact-SQL contida no relatório personalizado).

Executando um relatório personalizado

É possível executar um relatório personalizado no Management Studio das seguintes maneiras:

  • Clique com o botão direito do mouse em um nó do Pesquisador de Objetos, aponte para Relatórios e clique em Relatórios Personalizados. Na caixa de diálogo Abrir Arquivo, localize uma pasta contendo arquivos .rdl e abra o arquivo de relatório apropriado.

  • Clique com o botão direito do mouse em um nó do Pesquisador de Objetos, aponte para Relatórios, aponte para Relatórios Personalizados e selecione um relatório personalizado na lista de arquivos usados mais recentemente.

Limitações

Quando trabalhar com relatórios personalizados, leve em consideração estas limitações:

  • Para evitar a execução não intencional de código mal-intencionado, não é possível configurar o Management Studio para executar um relatório automaticamente, mesmo que o sistema de arquivos esteja configurado para associar arquivos .rdl ao Management Studio. Relatórios não podem ser executados programaticamente no Management Studio e não podem ser executados da linha de comando através do Management Studio.

  • Você pode executar relatórios personalizados em um contexto que não produza os valores esperados. Por exemplo, você pode executar um relatório sobre replicação no contexto de um banco de dados que não está envolvido na replicação ou pode executar um relatório como um usuário que não tem permissão para acessar as informações necessárias para gerar um relatório preciso. O criador do relatório personalizado é responsável pela validade da estrutura do relatório e seu contexto.

  • Não é possível adicionar um relatório personalizado à lista de relatórios padrão.

  • O código processado pelo relatório pode afetar o desempenho do servidor.

  • Relatórios personalizados não darão suporte a sub-relatórios.

  • O texto de comando de cada consulta no relatório não deve ser definido por meio de uma expressão.

  • Todos os parâmetros de consulta usados em um comando (consulta) só podem fazer referência a um único parâmetro de relatório e não podem usar operadores de expressão.

  • Só existe suporte para tipos de comandos de relatório (consultas) Texto e Procedimento Armazenado.

  • A estrutura de relatório não oferece nenhum escape de parâmetros para consultas. Os autores das consultas devem ter certeza de que suas consultas estão livres de ataques de injeção SQL.

Gerenciando relatórios personalizados

Os usuários que têm muitos relatórios personalizados devem organizá-los utilizando pastas do sistema de arquivos com permissões adequadas no sistema de arquivos NTFS.

Permissões

Relatórios personalizados executados usando as permissões do usuário atual. Para impedir que um usuário mal-intencionado altere as consultas executadas pelo relatório, as permissões na pasta do sistema de arquivos que contém os arquivos de relatório devem ser definidas com acesso restrito.

O usuário e a conta utilizada pelo serviço SQL Server exigem acesso de leitura na pasta do sistema de arquivos que contém os arquivos de relatório.

Qualquer comando .NET Framework válido pode ser inserido em um relatório, mas o comando não será executado.

Observação sobre cuidadosCuidado

Qualquer instrução Transact-SQL válida pode ser inserida em um relatório e executada dele. Quando um relatório é executado utilizando-se uma conta de usuário com altos privilégios, qualquer uma dessas instruções inseridas pode ser executada sem desafio.

Exemplos de relatório

Exemplos de relatórios, inclusive relatórios padrão criados pela Microsoft, estão disponíveis para download. Esses exemplos podem ser modificados com o SSDT (SQL Server Data Tools).

Consulte também

Tarefas

adicionar um relatório personalizado ao Management Studio

Conceitos

Cancelar supressão da execução de avisos de relatório personalizado

Usar relatórios personalizados com propriedades de nó do Pesquisador de Objetos