Partager via


Механизмы аудита и отслеживания изменений данных в SQL Server 2008

Механизм аудита в Microsoft SQL Server 2008 спроектирован для поддержки сценариев обеспечения безопасности, а также для подтверждения соответствия требованиям безопасности. Для данных сценариев важна регистрация инициатора операции и самого факта ее совершения. Это позволяет при необходимости проводить расследования возможных случаев несанкционированного доступа и/или представлять доказательства отсутствия фактов несанкционированного доступа.

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

Понятно, что регистрация изменений данных вместе с событием потребовала бы неизмеримо больших накладных расходов. Например, размер журнала аудита был бы сравним с размером журнала транзакций за тот же период. Для выбранных же сценариев накладные расходы должны быть минимальны. Кроме того, далеко не все операции, требующие регистрации в журнале аудита, например, запуск системных хранимых процедур, однозначным образом соответствуют изменениям данных в каких-либо таблицах. Учет таких случаев привел бы к неоправданному усложнению структуры события аудита.

Очевидно, регистрация изменений данных представляет собой иной сценарий, для реализации которого можно предложить два других механизма SQL Server 2008: change data capture и change tracking.

Механизм отслеживания измененных данных или change data capture (CDC) позволяет получить доступ к детальной истории изменения данных в таблицах. Каждое зарегистрированное изменение является копией строки исходной таблицы. Доступен тип операции изменения – добавление, удаление или изменение. В последнем случае сохраняется как состояние строки непосредственно до внесения изменений, так и состояние строки после внесения изменений, а также можно узнать в каких именно колонках произошли изменения.

В целях снижения влияния на производительность базовых операций SQL Server, CDC работает асинхронно, обрабатывая журнал транзакций на низком приоритете. Тем не менее, каждое изменение имеет четкую привязку к моменту времени благодаря использованию регистрационного номера в журнале транзакций (LSN).

Механизм отслеживания изменений или change tracking является упрощенным механизмом регистрации фактов изменения строк данных в таблицах. В отличие от CDC, данный механизм лишь регистрирует первичные ключи тех строк, в которых произошли изменения. Доступен тип операции изменения и список колонок, в которых произошли изменения, однако сами измененные данные недоступны.

Change tracking требует существенно меньше ресурсов, чем механизм CDC, что позволяет ему работать синхронно по отношению к базовым операциям с данными.

Также следует отметить, что ни CDC, ни change tracking не предоставляют информацию о выполненной TSQL операции и об учетной записи, инициировавшей ее. Вследствие этого использование данных механизмов для реализации сценария аудита безопасности невозможно.

В таблице приведена сводка основных отличий всех трех рассмотренных механизмов.

 

Аудит

CDC

Change tracking

Какие операции отслеживаются?

Любые

Только DML

Только DML

Сохраняется ли учетная запись, инициировавшая операцию? Да Нет Нет
Сохраняется ли исходный запрос TSQL? Да Нет Нет
Сохраняются ли изменения данных? Нет Да Нет *
Синхронный или асинхронный режим обработки? Оба ** Асинхронный Синхронный
В каких редакциях SQL Server 2008 работает? Только в Enterprise Только в Enterprise Во всех

* Сохраняется только первичный ключ измененной строки.
** Зависит от настроек.

В заключение еще раз обозначим типовые сценарии, для реализации которых были разработаны рассмотренные механизмы.

  • Аудит
    • обеспечение безопасности;
    • подтверждение соответствия требованиям безопасности (regulatory compliance).
  • CDC
    • перенос изменений данных во вторичные источники;
    • репликация изменений.
  • Change tracking
    • разрешение конфликтов в случае параллельных изменений одних и тех же строк данных;
    • обслуживание отсоединенных систем.

Дополнительную информацию по рассмотренным механизмам Microsoft SQL Server 2008 можно получить в библиотеке MSDN:

Аудит в SQL Server 2008

Использование системы отслеживания измененных данных (change data capture)

Использование механизма отслеживания изменений (change tracking)

ГБ

Comments

  • Anonymous
    July 17, 2009
    Соберем для Вас по сети интернет базу данных потенциальных клиентов для Вашего Бизнеса (Название телефон факс email www имена адреса итд) Более подробную информацию Вы сможете получить по телефону +79133913837 ICQ: 6288862 SKYPE: prodawez EMAIL: prodawez@mixmail.com