Пользовательские отчеты в Management Studio
применимо:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Analytics 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
Снять подавление предупреждений при выполнении пользовательских отчетов
использовать настраиваемые отчеты с свойствами узла обозревателя объектов