Мы разрабатываем веб-приложение, используя asp.net и sql server.Мы обязаны сделать контрольный журнал для приложения.Насколько я понимаю, контрольный журнал в основном предназначен для всех вставок, обновлений и удалений в базе данных, верно?Теперь способ подойти к этому состоит в том, что у меня есть таблица аудита в БД, которая заполняется после каждой вставки, обновления или удаления (написание сценария вручную в DAL).Тем не менее, любые изменения БД, выполненные напрямую из SQL Management studio, НЕ будут записываться (по понятным причинам: P).
Чтобы справиться с этим, я мог бы создать триггер, и он позаботится обо всем.Я также немного погуглил и обнаружил, что у сервера SQL есть возможность делать контрольные записи.Однако проблема с использованием триггеров заключается в том, что я НЕ буду получать информацию о пользователях, которые вошли на сайт.Я получу пользователя sql, но я не дам два гудка об этом, я обеспокоен пользователем сайта.
Решение, которое я нашел, было либо: а) иметь контрольный журнал из моего веб-приложения, а также настроить триггер.В отчете об аудите я просто показываю журнал аудита из веб-приложения и журнал аудита с сервера SQL.Очевидные проблемы с этим подходом: накладные расходы.Запись в два разных набора таблиц при КАЖДОМ ИЗМЕНЕНИИ БД.
b) У меня есть столбец с именем UserId ON КАЖДОЙ БД ТАБЛИЦЫ.Затем я создаю триггер для записи всех изменений в БД.Я передаю этот идентификатор пользователя в каждую изменяемую таблицу (вставка, обновление, удаление) и получаю этот идентификатор из триггера.Очевидные недостатки: столбец ненужных идентификаторов пользователей в каждой таблице
Я прошу прощения за длинный пост.В основном мне нужен журнал аудита, который регистрирует все изменения в БД (включая прямой взлом на БД), но в то же время дает мне регистрационную информацию пользователя для тех изменений БД, которые были сделаны ИЗ веб-приложения.любой вклад в этом отношении.
Большое спасибо
xeshu