对于SQL Server 2008R2中的触发器,我需要知道插入,更新或删除记录的用户。
由于不同的用户使用相同的连接字符串登录,我不知道谁真正登录到服务器(我使用具有相同UID的SQL身份验证,并通过Access数据库授予访问权限!!)。
我希望尽可能在连接字符串中添加一个变量,例如Application Name=myrealusername
,但似乎从Access VBA我无法添加此参数。
是否有人知道如何检索已登录的真实用户名以将用户名传递给触发器?
答案 0 :(得分:1)
您可以尝试录制HOST_NAME()
以捕获执行查询的实例。如果每个用户都拥有自己的PC,那么如果您不打算使用Windows身份验证,这可能是您最好的猜测之一。
更多详情:HOST_NAME() MSDN Documentation
显然,唯一真正的解决方案是使用Windows身份验证。
答案 1 :(得分:0)
您可以使用Windows身份验证并尝试使用
select suser_name()