Каков наилучший способ аудита журнала DELETEs? - PullRequest
1 голос
/ 30 марта 2009

Идентификатор пользователя в строке подключения не является переменной и отличается от идентификатора пользователя (например, GUID) вашей программы. Как вы проверяете удаление журнала, если идентификатор пользователя в строке подключения является статическим?

Лучшее место для записи вставки / обновления / удаления - через триггеры. Но со статической строкой соединения трудно регистрировать, кто что-то удаляет. Какая альтернатива?

Ответы [ 2 ]

1 голос
/ 30 марта 2009

С SQL Server вы можете использовать CONTEXT_INFO для передачи информации в триггер.

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

0 голосов
/ 30 марта 2009

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

Обычно мы передаем логический идентификатор пользователя в качестве параметра в каждую хранимую процедуру. Чтобы отслеживать удаление, мы обычно не удаляем строку, просто помечаем статус как удаленный, соответственно устанавливаем поля LastChgID и LastChgDate. Для важных таблиц, где мы храним журнал аудита (копию каждого состояния изменения), мы используем вышеуказанный метод, и триггер копирует строку в таблицу аудита, LastChgID уже установлен правильно, и триггеру не нужно беспокоиться о получении удостоверения личности.

...