Поделиться через


Пользовательские отчеты в среде Management Studio

Добавления: 12 декабря 2006 г.

В среде SQL Server Management Studio во многих узлах обозревателя объектов отображается набор стандартных отчетов, созданных корпорацией Майкрософт. В этих отчетах сведены все обычно запрашиваемые данные о серверах. Начиная с версии SQL Server 2005 с пакетом обновления 2 (SP2), среда Management Studio позволяет администраторам выполнять пользовательские отчеты, созданные в , из Management Studio.

Реализация

Пользовательские отчеты хранятся как файлы определения отчета (.rdl) и создаются с помощью языка определения отчетов. Язык определения отчетов содержит сведения о получении данных и о макете для отчета в формате XML. Язык определения отчетов — это открытая схема. Разработчики могут расширять его, добавляя дополнительные атрибуты и элементы. Внутри отчета могут выполняться любые допустимые инструкции Transact-SQL.

Если обозреватель объектов не подключен к серверу, то пользовательские отчеты могут выполняться в контексте текущего узла, выбранного в обозревателе объектов, если отчеты ссылаются на его параметры отчета. Это позволяет отчету использовать текущий контекст, например текущую базу данных, либо согласованный контекст, например указывать выбранную базу данных в качестве части инструкции Transact-SQL в пользовательском отчете.

Запуск пользовательского отчета

В среде Management Studio пользовательский отчет можно запустить следующими способами:

  • Щелкните правой кнопкой мыши узел в обозревателе объектов, выберите Отчеты, затем Пользовательские отчеты. В диалоговом окне Открытие файла найдите папку, содержащую RDL-файлы, а затем откройте нужный файл отчета.
  • Щелкните правой кнопкой мыши узел в обозревателе объектов, выберите Отчеты, затем Пользовательские отчеты. После этого выберите из списка последних использованных файлов нужный пользовательский отчет.

Ограничения

При работе с пользовательскими отчетами необходимо учитывать следующий набор ограничений:

  • Для того чтобы предотвратить выполнение вредоносного кода, в Management Studio запрещен автоматический запуск отчетов, даже если в файловой системе RDL-файлы сопоставлены со средой Management Studio. Отчеты не могут выполняться в Management Studio программным образом. Кроме того, невозможно их выполнение через командную строку Management Studio.
  • Пользовательские отчеты можно выполнять в контексте, который не производит ожидаемые значения. Например, можно запустить отчет, посвященный репликации в контексте базы данных, которая не связана с репликацией, или запустить отчет в качестве пользователя, не имеющего разрешения для доступа к данным, необходимым для формирования точного отчета. Создатель пользовательского отчета отвечает за правильность его структуры и контекста.
  • Нельзя добавить пользовательский отчет в список стандартных отчетов.
  • Код, обрабатываемый в отчете, может повлиять на поведение сервера.
  • Пользовательские отчеты не поддерживают вложенные отчеты.
  • Текст команды для каждого запроса внутри отчета не должен быть задан через выражение.
  • Любой параметр, используемый в команде (запросе), может ссылаться только на один параметр отчета и не может использовать операторы выражений.
  • Команды отчетов (запросы) поддерживают только типы команд «Только текст» и «Хранимая процедура».
  • В системе отчетов не предусмотрено экранирование параметров для запросов. Авторы запросов должны убедиться, что их запросы не подвержены атакам типа SQL Injection.

Управление пользовательскими отчетами

Пользователям, у которых есть несколько пользовательских отчетов, рекомендуется группировать их с помощью системных папок, обладающих соответствующими разрешениями NTFS.

Разрешения

Пользовательские отчеты работают с разрешениями текущего пользователя. Чтобы предотвратить изменение выполняемых отчетом запросов злонамеренными пользователями, рекомендуется ограничить доступ в разрешениях для папки с файлами отчетов.

И пользователь, и применяемая службой SQL Server учетная запись должны обладать доступом на чтение системной папки с файлами отчетов.

В отчет можно внедрить любую допустимую команду Microsoft .NET Framework, но она не будет выполняться.

Bb153684.Caution(ru-ru,SQL.90).gifВнимание!
В отчет можно внедрить любую допустимую инструкцию Transact-SQL, и она будет выполняться из этого отчета. Запуск отчета через учетную запись пользователя, обладающего расширенными правами доступа, делает возможным беспрепятственный запуск любых внедренных инструкций.

Образцы отчетов

Образцы отчетов, включая стандартные отчеты, созданные в корпорации Майкрософт, доступны для загрузки. Эти образцы можно изменять с помощью среды Business Intelligence Development Studio.

См. также

Задачи

Как добавить пользовательский отчет в среду Management Studio
Как отменить подавление предупреждений для пользовательских отчетов

Основные понятия

Использование пользовательских отчетов со свойствами узлов обозревателя объектов

Справка и поддержка

Получение помощи по SQL Server 2005