Мы разрабатываем веб-приложение с использованием asp.net и sql-сервера. Мы должны сделать аудиторскую проверку для приложения. Насколько я понимаю, аудиторский след будет в основном для всех вложений, обновлений и удалений в базе данных? Теперь способ приблизиться к этому заключается в том, что у меня есть таблица аудита аудита в БД, которая заполняется после запуска каждой вставки, обновления или удаления (вручную записывать script в DAL). Однако любые изменения БД, непосредственно запущенные из студии управления SQL, НЕ будут записаны (по очевидным причинам: P).
Чтобы справиться с этим, я мог бы создать триггер и заботиться обо всем. Я также сделал некоторые поисковые запросы и выяснил, что SQL-сервер имеет возможность выполнять аудиторскую проверку. Однако проблема с использованием триггеров заключается в том, что я НЕ получаю информацию пользователя, зарегистрированную на веб-сайте. Я получу пользователя sql, но я не даю двух криков об этом, меня беспокоит пользователь веб-сайта.
Решение, которое я выяснил, было либо a) Получите контрольный журнал из моего веб-приложения, а также настройте триггер. В отчете аудита я просто показываю журнал аудита из веб-приложения и журнал аудита с SQL-сервера. Очевидные проблемы с этим подходом: над головой. Запись в два разных набора таблиц на КАЖДЫЙ DB CHANGE.
b) У меня есть столбец UserId ON EVERY DB TABLE. Затем я создаю триггер для записи всех изменений БД. Я передаю этот userId для каждой таблицы, которую я меняю (вставляю, обновляю, удаляю) и получаю этот идентификатор от триггера. Очевидные неудачи: noeccesary userid столбец в каждой таблице
Я отношусь к длинному сообщению. В основном мне нужен журнал аудита, который регистрирует все изменения db (в том числе direct hack to db), но в то же время дает мне регистрационную информацию для тех изменений db, которые были сделаны из веб-приложения.
Поймите любой вклад в этом отношении.
Большое спасибо
xeshu