Как использовать SQL Server Trace и SQL Profiler для аудита
На этой странице
- Что такое SQL-трассировка?
- Основные возможности и применение SQL-трассировки
- Включение SQL Trace с помощью SQL Server Profiler
- Как сохранить данные SQL Trace в файл на SQL Server
- Как включить SQL-трассировку для аудита
- Просмотр файлов SQL Trace
- Что такое SQL Server Profiler?
- Почему не стоит полагаться на SQL Trace и SQL Server Profiler для аудита?
- Лучшая альтернатива аудиту сервера SQL Server
Что такое SQL-трассировка?
SQL Trace - это функция SQL Server, которая позволяет отслеживать и проверять события, происходящие в экземпляре SQL. События записываются в файл трассировки, который по умолчанию сохраняется в каталоге \MSSQL\LOG.
С помощью SQL Trace можно настроить различные параметры для точного мониторинга событий и управления уровнями детализации журнала. Управлять этим можно с помощью SQL Server Management Studio или SQL Server Profiler, которые предоставляют графический интерфейс для детального контроля над процессом трассировки.
Основные возможности и применение SQL Trace:
- Настройка производительности. SQL Trace позволяет точно настроить производительность базы данных, анализируя время выполнения и использование ресурсов SQL-запросами.
- Быстрое устранение неполадок. Анализируйте журналы ошибок, созданные SQL Trace, для быстрого устранения неполадок и решения проблем с базой данных, а также минимизации простоев SQL Server.
- Понимание влияния на производительность. SQL Trace дает представление о том, как операторы SQL влияют на производительность приложения и системы, а также позволяет выявить потенциальные узкие места.
- Оптимизированное соответствие: Используйте SQL Trace для обеспечения соответствия требованиям аудита. Подробная регистрация действий в базе данных обеспечивает четкую хронологическую запись, упрощая усилия по обеспечению соответствия.
Чтобы включить SQL Trace с помощью SQL Server Profiler, выполните указанные ниже действия.
Шаг 1. Запустите SQL Server Management Studio и выберите Сервис > SQL Server Profiler. Нажмите Файл, затем выберите Новая трассировка.

Шаг 2. В окне "Свойства трассировки" введите описательное имя для трассировки в поле "Имя трассировки". Будет предложено подключиться к экземпляру SQL Server. Нажмите Запустить.

Шаг 3. Выберите место для сохранения данных трассировки.
-
Сохранение в файл. Чтобы сохранить трассировку в файл, установите флажок Сохранить в файл, укажите путь к файлу и задайте максимальный размер файла трассировки. Значение по умолчанию - 5 МБ.

-
Сохранение в таблицу. Чтобы сохранить трассировку в таблице, установите флажок Сохранить в таблицу и укажите имя таблицы, в которой будут сохранены данные трассировки, а также максимальное количество строк для ограничения размера.


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

Шаг 5. Начните трассировку. После настройки параметров трассировки запустите трассировку, нажав кнопку Старт или Запустить. Затем трассировка будет активно отслеживать и записывать события на SQL-сервере в соответствии с указанными настройками.
Шаг 6. Остановите трассировку. После завершения сбора данных нажмите кнопку Остановить выбранную трассировку, чтобы остановить трассировку.

Как сохранить данные трассировки SQL в файл на SQL Server?
Чтобы сохранить данные трассировки SQL в файл на сервере SQL, нажмите Файл, выберите Сохранить как, а затем выберите Файл трассировки, чтобы гарантировать, что данные трассировки будут правильно собраны и сохранены в нужном вам месте. После сохранения можно проанализировать данные трассировки с помощью SQL Server Profiler или других инструментов анализа, чтобы получить ценную информацию о деятельности SQL Server. Этот процесс позволяет эффективно отслеживать, диагностировать и оптимизировать производительность базы данных.

Как включить SQL-трассировку для аудита
При создании трассировки можно указать события, которые хотите записать, внеся изменения в диалоговое окно "Свойства трассировки". На вкладке Общие диалогового окна можно указать такую информацию, как имя трассировки, место хранения файла трассировки и время остановки трассировки.
- На вкладке Выбор событий можно выбрать или отменить выбор событий, которые хотите зафиксировать в своей трассировке.
- На этой же вкладке создайте фильтры, нажав Фильтры столбцов.
- Появится диалоговое окно "Изменить фильтр".
- Можно ввести характеристики фильтра, используя предоставленные операторы сравнения.
- Сохраните изменения.
Теперь трассировки будут собираться путем включения фильтров в указанное место хранения.

Просмотр файлов трассировки
Файлы трассировки можно прочитать с помощью функции fn_trace_gettable, которая отображает записанные события в табличном формате. Записи можно агрегировать и выполнять по ним поиск с помощью SQL-запросов. Файлы трассировки имеют большой объем, и написание вручную запросов для извлечения интересующих полей с целью создания контрольного журнала может оказаться утомительным процессом. Для просмотра файлов трассировки можно также использовать SQL Server Profiler.
Что такое SQL Server Profiler?
SQL Server Profiler предоставляет графический пользовательский интерфейс для доступа к файлам трассировки путем сохранения, извлечения и аудита сохраненных записей. Основными функциями SQL Profiler являются мониторинг активности SQL Server, предоставление информации об общем состоянии и выявление элементов, влияющих на производительность экземпляра SQL.
SQL Profiler обеспечивает прозрачность файлов трассировки, позволяя сохранять записи трассировки, сравнивать их с последующими записями для устранения любых проблем в работе (например, медленно выполняющегося запроса) и настраивать их для повышения производительности.
Какие проблемы аудита возникают при использовании SQL Trace и SQL Server Profiler?
Трассировки SQL могут генерировать большой объем данных, особенно если уровень трассировки установлен на подробный режим или если она остается работающей в течение длительного времени. Трассировка SQL может существенно снизить производительность базы данных из-за дополнительных ресурсов ЦП и памяти, необходимых для ведения журнала, а также может привести к увеличению объема дискового ввода-вывода. Принятие решения о том, когда начинать и останавливать отслеживание, настройка того, что следует отслеживать, и анализ собранных данных могут оказаться утомительным процессом. Также существуют риски безопасности, поскольку файлы трассировки могут содержать конфиденциальную информацию.
Более того, в одном файле трассировки можно хранить записи только до указанного ограничения данных (например, 20 МБ). Файлы трассировки не могут храниться в течение длительного времени, поскольку они переносятся. Существует также ограничение на максимальное количество файлов трассировки, которые можно сохранить (т. е. пять файлов). При достижении максимума самый старый файл трассировки будет стерт из памяти. Это неприемлемо для аудита, поскольку предполагается, что вы будете хранить записи в течение длительного периода времени. SQL Server Profiler можно использовать только в том случае, если трассировки настроены для различных действий индивидуально. Анализ файлов трассировки вручную с помощью SQL Server Profiler - трудоемкий процесс.
Эффективное управление областью действия и продолжительностью трассировки SQL имеет решающее значение для предотвращения чрезмерных накладных расходов, которые могут повлиять на производительность сервера. Важно найти баланс между сбором достаточного количества данных для анализа и минимизацией использования ресурсов.
Корпорация Microsoft объявила устаревшими SQL Trace и SQL Server Profiler, а также пространство имен Microsoft.SqlServer.Management.Trace и объекты SQL Server Trace и Replay. Функции Trace и Server Profiler, возможно, будут удалены в будущих версиях SQL Server.
Лучшая альтернатива аудиту сервера SQL Server
Данные, собранные с помощью трассировки SQL, могут быть сложными и объемными, что затрудняет их правильный анализ и интерпретацию. Неправильная интерпретация журналов трассировки может привести к неверным выводам и ошибочным усилиям по настройке производительности или отладке. Накладные расходы на хранение больших объемов данных трассировки могут быть существенными, что усложняет управление данными.
SQL-серверы генерируют объемные журналы, и их необходимо тщательно контролировать для обеспечения безопасности и соответствия требованиям. Вместо того чтобы полагаться на SQL Trace и SQL Server Profiler для аудита, можно использовать решение для управления журналами, которое может эффективно собирать, анализировать и обрабатывать журналы с вашего SQL-сервера.
EventLog Analyzer - это комплексное решение для управления журналами, которое эффективно собирает и анализирует журналы SQL Server. Оно создает интуитивно понятные и подробные отчеты, охватывающие действия DDL и DML, управление учетными записями серверов и атаки безопасности. Некоторые из отчетов аудита, предоставляемых EventLog Analyzer, включают информацию об изменениях столбцов, удалениях, изменениях безопасности, разрешениях, времени последнего входа в систему, информации о входе в систему, несанкционированном копировании конфиденциальных данных, блокировках учетных записей, раскрытии носителей информации, внедрении SQL-кода и атаках типа "отказ в обслуживании". Кроме того, можно настроить оповещения для обнаружения необычных действий и получать уведомления в режиме реального времени по электронной почте и SMS для снижения угроз и предотвращения атак. Изучите другие отчеты, предлагаемые EventLog Analyzer, чтобы расширить возможности управления журналами.