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


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

применимо:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsAnalytics Platform System PDW

В СРЕДЕ SQL Server Management Studio многие узлы обозревателя объектов отображают набор стандартных отчетов, созданных корпорацией Майкрософт. Эти отчеты обобщают обычно запрошенные сведения о сервере. Начиная с SQL Server 2005 (9.x) с пакетом обновления 2 , администраторы могут запускать пользовательские отчеты, созданные в SQL Server Data Tools (SSDT) из Management Studio.

Реализация

Пользовательские отчеты хранятся в виде файлов определения отчета (RDL) и создаются с помощью языка определения отчетов (RDL). RDL содержит сведения о извлечении данных и макете отчета в формате XML. RDL — это открытая схема. Разработчики могут расширить 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 могут быть внедрены и выполнены из отчета. Выполнение отчета в учетной записи пользователя с высоким уровнем привилегий позволяет выполнять любые из этих внедренных инструкций без проблем.

См. также

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