我有一个连接到SQL Server 2000的应用程序(使用通用SQL登录和SQL身份验证)。我想通过触发器实现一些日志记录来跟踪数据更改。我无法使用USER_NAME()
,因为它会返回通用帐户。
我已经查看了master..sysprocesses
并且它似乎没有记录用户名(虽然它确实记录了机器名称)。
在SQL中如何获取对用户名的访问权限?
(注意:是的,我可以通过应用程序将其作为变量传递...但这意味着我必须推出新版本的应用程序;我正在尝试从SQL中执行此操作,如果可能的话,我可以避免这种情况。)
答案 0 :(得分:4)
你做不到。简单。 SQL Server完全不了解SQL登录的最终用户
如果您使用代理(Web服务器等)也是如此:您不了解最终用户。我们使用参数/存储过程来从Web服务器传递用户名。
我建议您在客户端中设置CONTEXT_INFO,以保持该连接。
答案 1 :(得分:1)
您是否尝试过SYSTEM_USER?
SELECT SYSTEM_USER