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

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)

Во многих узлах обозревателя объектов в среде SQL Server Management Studioотображается набор стандартных отчетов, созданных в Microsoft. В этих отчетах сведены все обычно запрашиваемые данные о серверах. Начиная с версии SQL Server 2005 (9.x) с пакетом обновления 2 (SP2), администраторы могут запускать настраиваемые отчеты, созданные в среде SQL Server Data Tools (SSDT) , из среды Среда 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, чтобы выполнять ее из этого отчета. Запуск отчета через учетную запись пользователя, обладающего расширенными правами доступа, делает возможным беспрепятственный запуск любых внедренных инструкций.

См. также:

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