Какова наилучшая реализация журнала аудита БД?[закрыто]
-
09-06-2019 - |
Вопрос
Журнал аудита БД фиксирует дату последнего изменения пользователя, дату изменения и дату создания.
Существует несколько возможных реализаций:
- Триггеры SQL-сервера
- Добавьте столбцы UserModified, ModifiedDate, CreatedDate в базу данных и включите логику в хранимые процедуры или операторы Insert, Update соответственно.
Было бы неплохо, если бы вы включили в свой ответ реализацию (или ссылку на нее).
Решение
В зависимости от того, что вы делаете, вам может потребоваться перенести аудит с уровня данных на уровень доступа к данным.Это дает вам больше контроля.
Я задал аналогичный вопрос относительно NHibernate и SqlServer. здесь.
Другие советы
Я полностью поддерживаю @IainMH (и проголосовал за него).
Вы хотите, чтобы он был в вашем DAL и в идеале связан с каким-то механизмом внедрения аспектов/перехватчиков/кода.
+2 за реализацию когда как провести аудит в DAL.
Что касается того, где должны находиться сами записи аудита, это зависит от того, как они будут видны.Я бы сделал отдельную таблицу, если пользователи могут просматривать отдельный «отчет о контрольном журнале», но пометил бы существующие таблицы тегами, если вы хотите отображать встроенные проверки последних измененных типов.
Вот реализация, которую я использую для аудита таблиц:Часто задаваемые вопросы по SQL-серверу Попа Риветта №5:Вспомните контрольный след