Я знаю, что в статье SO Как получить имя пользователя домена при подключении с помощью аутентификации SQL уже упоминалось, но это не значит, что вы не можете делать то, что хотите.Это просто означает, что все становится немного сложнее.
То, что я делал в прошлом, включает в себя поле «Последнее изменение» или что-то в этом роде.Я сделал его стандартным полем (как обычно DateCreated и DateModified).Затем я включил его в каждый хранимый процесс (единственный способ записи данных в SQL).Таким образом, веб-приложение (или что-то еще) может передать фактическое лицо, вошедшее в систему, когда они пишут данные.Затем мой триггер может захватить это поле и поместить его в таблицу аудита.Теперь я знаю, кто внес каждое изменение.
Однако следует учитывать, что вы полагаетесь на то, что вызывающий абонент должным образом информирует вас о том, кто пишет в базу данных.Хранимая процедура не будет знать, «выдаваете ли вы себя» за кого-то другого.Однако, если вы контролируете места, которые вызывают этот процесс, у вас все в порядке.