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