捕获用于删除操作的USER_ID

时间:2010-08-22 03:55:07

标签: sql tsql sql-server-2008

我们目前使用审核触发器来跟踪所有数据库更改。为了捕获提交删除的人的user_id,我们必须使用更新,然后让触发器执行删除,以便我们可以捕获该USER_ID。

是否有其他人使用不同的方法或采用更好的方法进行此过程?

谢谢,

- S

2 个答案:

答案 0 :(得分:1)

对于来自客户端的直接连接,请在DELETE触发器中使用SUSER_SNAME()或类似内容。

对于间接(例如通过网站),使用SET CONTEXT_INFO (answers by me before)传递执行的用户详细信息。这可以通过网站中的代码或通过存储的proc参数进行设置。这也可以用于直接连接。

答案 1 :(得分:0)

如果您使用的是Windows身份验证(2层或模拟),则可以使用SUSER_NAME()SUSER_ID()

select SUSER_NAME(), USER_ID()