我们有一个 (asp.net) 应用程序,它使用专门为此应用程序设置的登录凭据连接到 SQL Server 2008 R2 数据库。
我们的应用程序通过存储过程访问/修改/删除记录,我们将执行操作的用户的用户名作为参数传递给该存储过程。
我们需要能够保留某些表上所有更新和删除的审计日志。该解决方案还需要尽可能少,并且不需要任何开发人员干预。
我能找到的最简单的方法是在表 (A) 上放置一个触发器,将“旧”数据复制到历史表 (A_History) 问题是我们需要能够判断谁执行了该操作,以便更新这很容易,我们只需查看新插入记录的用户名。但是对于删除,我们无权访问发送到存储过程的用户名参数。
有没有办法在不使用 CONTEXT_INFO() 之类的东西的情况下实现这一点,因为这需要添加到每个存储过程和每个调用中,这一定会被遗忘。