Назад | Перейти на главную страницу

Посоветовали метод аудита для MS SQL для отслеживания изменений, внесенных в конкретную таблицу конкретным пользователем?

Каков наилучший метод отслеживания изменений или регистрации запросов, сделанных к таблице конкретным пользователем, когда этот человек использует Management Studio?

Я использую 2008 R2 Express Edition и хочу специально отслеживать одного пользователя, который входит в систему через Management Studio и выполняет запросы для внесения изменений вручную. Я хочу увидеть, какой запрос был запущен, и таким образом определить, что и как было изменено. Я не заинтересован в восстановлении информации. Я рассматривал отслеживание изменений, но прочитал, что он также не идеален для аудита. Я не уверен, как читать данные, затем я рассмотрел вариант Bulk-Logging в базе данных, однако затем мне нужно подумать об обработке файлов журнала, которые могут стать огромными, поскольку база данных постоянно используется веб-приложением. Мне интересно, есть ли более краткий способ сделать то, что я хочу?

Начиная с SQL Server 2008, существует 3 собственных решения для аудита - отслеживание изменений, сбор данных об изменениях и аудит SQL Server, но только одно отслеживает пользователя, который внес изменения.

Отслеживание изменений не отвечает на вопросы «кто», «когда» и «как». Кроме того, если в одной строке было внесено несколько изменений, отображается только последнее. Эта функция просто указывает, была ли изменена строка или нет. Он показывает идентификатор измененной строки и конкретный измененный столбец. Эта функция не предоставляет подробностей об изменении. Вы можете сопоставить информацию об изменениях с моментальным снимком базы данных и действующей базой данных, чтобы узнать больше об изменениях, но это требует дополнительного кодирования и по-прежнему не дает всей информации, которая может потребоваться для аудита. Он также не отслеживает выполненные запросы. Что касается чтения данных, то встроенных отчетов нет, необходимо использовать функции отслеживания изменений

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

Отслеживание изменений данных также не отслеживает, кто внес изменение и какой код был выполнен. Как и в случае с функцией отслеживания изменений SQL Server, информация об изменениях в системе отслеживания данных изменений SQL Server доступна через Табличные функции

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

Аудит SQL Server - единственная функция, которая фиксирует имя пользователя, внесшего изменение. Он также фиксирует выполнение операторов SELECT и EXECUTE. Проверенная информация может храниться в 3 типах файлов - файл * .sqladuit, журнал приложения и безопасности, и вы можете использовать функцию fn_get_audit_file, утилиту просмотра файлов журнала в SQL Server Management Studio и средство просмотра событий Windows для их чтения.

Кроме того, существуют сторонние инструменты аудита, которые также предоставляют встроенную отчетность, например ApexSQL Соответствует

Отказ от ответственности: я работаю в ApexSQL инженером службы поддержки

Отслеживание изменений не отслеживает фактические данные, которые были изменены.

Система отслеживания измененных данных отслеживает данные, которые были изменены, но является функцией Enterprise Edition.

Вы можете создать свои собственные таблицы аудита и указать триггеры ПЕРЕД для соответствующего DML и данных, чтобы записывать любую информацию, которую вы хотите.

Сравнение сбора измененных данных и отслеживания изменений
http://msdn.microsoft.com/en-us/library/cc280519%28v=sql.105%29.aspx

Сбор данных об изменениях
http://msdn.microsoft.com/en-us/library/bb522489%28v=sql.105%29.aspx

СОЗДАТЬ ТРИГГЕР (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms189799%28v=sql.105%29.aspx