Пользовательские отчеты в среде 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, но она не будет выполняться.
Внимание! |
---|
В отчет можно внедрить любую допустимую инструкцию Transact-SQL, и она будет выполняться из этого отчета. Запуск отчета через учетную запись пользователя, обладающего расширенными правами доступа, делает возможным беспрепятственный запуск любых внедренных инструкций. |
Образцы отчетов
Образцы отчетов, включая стандартные отчеты, созданные в корпорации Майкрософт, доступны для загрузки. Эти образцы можно изменять с помощью среды Business Intelligence Development Studio.
См. также
Задачи
Как добавить пользовательский отчет в среду Management Studio
Как отменить подавление предупреждений для пользовательских отчетов
Основные понятия
Использование пользовательских отчетов со свойствами узлов обозревателя объектов