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


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

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

Реализация

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

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

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

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

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

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

Ограничения

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

  • Чтобы предотвратить выполнение вредоносного кода, в среде Management Studio запрещен автоматический запуск отчетов даже в том случае, если в файловой системе RDL-файлы сопоставлены со средой Management Studio. Отчеты не могут выполняться в среде Management Studio программным способом. Кроме этого, невозможно их выполнение из командной строки среды Management Studio.

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

  • Пользовательский отчет не может быть добавлен в список стандартных отчетов.

  • Код, обрабатываемый в отчете, может оказать влияние на производительность сервера.

  • Пользовательские отчеты не поддерживают вложенные отчеты.

  • Текст команды для запросов внутри отчета не должен быть задан через выражение.

  • Любой параметр, используемый в команде (запросе), может ссылаться только на один параметр отчета и не может использовать операторы выражений.

  • Для команд отчетов (запросов) поддерживаются только следующие типы команд: «Только текст» и «Хранимая процедура».

  • Среда обработки отчетов не предусматривает экранирование параметров запросов. Автор запроса должен проверить, что его запрос устойчив к атакам типа «Внедрение SQL».

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

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

Разрешения

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

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

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

ПредупреждениеВнимание!

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

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

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