我有一个连接到 SQL Server 2000 的应用程序(使用通用 SQL 登录和 SQL 身份验证)。我想通过触发器实现一些日志记录来跟踪数据更改。我不能使用USER_NAME()
因为这会返回通用帐户。
我已经翻阅过master..sysprocesses
而且它似乎没有记录用户名(尽管它确实记录了机器名称)。
有什么想法如何在 SQL 中获取用户名的访问权限吗?
(注意:是的,我可以通过应用程序将其作为变量传递...但这意味着我必须推出应用程序的新版本;我正在尝试从 SQL 中执行此操作,所以我如果可能的话,可以避免这种情况。)
你不能。简单的。 SQL Server 不知道具有 SQL 登录名的最终用户at all
如果您也使用代理(网络服务器等),这同样适用:您不知道最终用户。我们使用参数/存储过程从 Web 服务器传入用户名。
我建议您在客户端中设置 CONTEXT_INFO,该信息对于该连接持续存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)