【发布时间】:2017-11-02 07:57:07
【问题描述】:
我想实现这一点,当用户“123”登录应用程序然后对数据库中的数据进行更改时,此更改将被记录到镜像表中,并在额外的列中显示“123”。
想法是写一个触发器,在镜像表中保存“插入”或“删除”,但问题是应用程序总是使用同一个数据库用户,所以我需要以某种方式将应用程序用户与数据库连接起来.
所以我的想法是在用户登录应用程序时将应用程序用户的@@SPID 保存到一个表中。不幸的是,我认为@@SPID 对于每个查询都可能不同,即使我使用相同的 ADOConnection 类。
我也不能使用应用程序名或主机名,因为可能是同一服务器上的不同用户启动了同一个应用程序,我需要能够区分第一个用户所做的更改和第二个用户所做的更改做了。
应用程序非常大,因此现在无法更新每个查询以手动记录更改。
这个问题还有其他解决方案吗?
【问题讨论】:
-
您的用户是域用户吗?您想知道使用 SQL Server 登录(通过您的应用程序)登录服务器的用户的域帐户吗?
标签: sql-server tsql ado audit