Аудит изменений данных SQL Server - PullRequest
13 голосов
/ 27 апреля 2009

Я смотрю на изменение нашего процесса аудита для наших баз данных SQL Server 2005, и я столкнулся с захватом изменений данных в SQL Server 2008.

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

Я заметил, что когда я читал о CDC в справке MS, там говорилось, что данные аудита обычно хранятся в течение нескольких дней. Это невозможно, я хотел бы хранить данные неопределенно долго, кто-нибудь знает о проблемах с этим подходом?

Если это не хорошее решение по причинам, о которых я не знаю, есть ли у вас какие-либо другие решения для аудита изменений данных. Я стремлюсь использовать систему, которая может быть реализована по всем направлениям на любых столах, которые я захочу.

Я следую основной информации: «До, После, Кем, Когда» для любых изменений.

Ответы [ 5 ]

9 голосов
/ 27 апреля 2009

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

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

Вот несколько ссылок с дополнительной информацией о том, как это было сделано с помощью триггеров:
Журнал аудита SQL
SQL-сервер-истории-таблицы Заселите-через-зр-или-триггер

Вот решение для отслеживания аудита с открытым исходным кодом, использующее LINQ: DoddleAudit

7 голосов
/ 04 октября 2013

Довольно поздно, но, надеюсь, это будет полезно для других читателей ...

Ниже приведены несколько различных методов аудита с его плюсами и минусами. Не существует «правильного» решения, которое бы подходило всем. Это зависит от требований и проверяемой системы.

Триггеры

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

CDC

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

Следы

  • Преимущества : большая гибкость при проверке. Даже отдельные заявления могут быть проверены.
  • Недостатки : вам потребуется создать отдельное приложение для анализа файлов трассировки и сбора из них полезной информации.

Чтение журнала транзакций

  • Преимущества : все, что вам нужно сделать, это перевести базу данных в режим полного восстановления, и вся информация будет сохранена в журнале транзакций
  • Недостатки : Для эффективного чтения этой информации вам необходим сторонний считыватель журналов

Я работал с несколькими инструментами аудита из ApexSQL , но есть и хорошие инструменты из Idera (менеджер соответствия) и Krell программного обеспечения (всенаправленный аудит)

ApexSQL Audit - Инструмент аудита на основе триггеров. Создано и управляет триггерами аудита

ApexSQL Log - позволяет проводить аудит путем чтения журнала транзакций

1 голос
/ 03 сентября 2009

В SQL Server 2008 вы можете использовать функцию «Аудит» и данные о запасах в файле, журнале приложения или системном журнале. Больше информации можно найти по адресу: http://msdn.microsoft.com/en-us/library/cc280386.aspx

0 голосов
/ 02 сентября 2013

Я использую этот сценарий, вы можете определить, какие таблицы (таблицы) вы хотите провести аудит или всю таблицу определить в вашей базе данных. Плюс, твф для просмотра одной записи истории. Проверьте ссылку, для деталей.

0 голосов
/ 15 мая 2012

Вы можете редактировать задание Sql Server, которое удаляет зафиксированные изменения через два дня. Вы также можете продлить время очистки по своему усмотрению или сделать его постоянным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...