Существует три очевидных варианта: использовать триггеры, использовать SQL для входа в DAL или использовать log4net для входа в DAL.
Использование триггеров
Есливы используете триггеры, добавляете столбец LastUser к каждой таблице и делаете указанный столбец обязательным (т. е. NOT NULL с проверочным ограничением, что это не пустая строка).Вам понадобится столбец LastUser, доступный для кода в ваших триггерах, чтобы вы могли записать, кто что сделал.Вы не говорите, какую систему баз данных вы используете;некоторые не поддерживают триггеры или не поддерживают триггеры SELECT (нужно записывать выполняемые операторы SELECT?).
Журнал из DAL с использованием SQL
Есливы входите из своего DAL в базу данных, надеюсь, все ваши звонки проходят через какой-то центральный фрагмент кода.Если это так, то вы можете добавить свой единственный метод регистрации в этом разделе кода.Помните, что вы хотите обернуть все вызовы базы данных в транзакции, чтобы убедиться, что ваш журнал и фактические данные не синхронизируются.
Журнал из DAL с использованием Log4Net
Вы можете так же легко настроить log4net для записи всего доступа к данным.Log4net имеет возможность записывать записи журнала как в файлы журналов, так и в базы данных.Добавление log4net к существующему коду легко, а конфигурация относительно проста.