如何通过SQL身份验证连接时获取域用户名

时间:2010-10-08 14:15:07

标签: tsql sql-server-2000 triggers

我有一个连接到SQL Server 2000的应用程序(使用通用SQL登录和SQL身份验证)。我想通过触发器实现一些日志记录来跟踪数据更改。我无法使用USER_NAME(),因为它会返回通用帐户。

我已经查看了master..sysprocesses并且它似乎没有记录用户名(虽然它确实记录了机器名称)。

在SQL中如何获取对用户名的访问权限?

(注意:是的,我可以通过应用程序将其作为变量传递...但这意味着我必须推出新版本的应用程序;我正在尝试从SQL中执行此操作,如果可能的话,我可以避免这种情况。)

2 个答案:

答案 0 :(得分:4)

你做不到。简单。 SQL Server完全不了解SQL登录的最终用户

如果您使用代理(Web服务器等)也是如此:您不了解最终用户。我们使用参数/存储过程来从Web服务器传递用户名。

我建议您在客户端中设置CONTEXT_INFO,以保持该连接。

答案 1 :(得分:1)

您是否尝试过SYSTEM_USER

SELECT SYSTEM_USER