如何获取正在执行事务的网络用户

时间:2014-02-15 07:41:16

标签: sql-server sql-server-2008

我的客户在他现有的SQL Server数据库上收到了一项任务。

他们拥有一个拥有1名拥有所有管理员权限的用户的数据库。他们管理应用程序级别的可访问性权限。

任务是创建一个审计表,以审计INSERT,UPDATE和&从数据库表中删除。

这个表的结构很简单:    表名    操作{INSERT,UPDATE或DELETE}    时间戳,    用户名

请求审核日志在服务器端通过触发器。

所以它是一个简单的任务:为每个表添加触发器&每个活动。在触发器内,向Audit Table插入一个新行,其值为(TableName,Operation,TimeStamp和& UserName)。

问题是所有用户的用户名(SQL:SYSTEM_USER)始终相同,因为他们都使用相同的管理员帐户连接。

无论如何,在SQL服务器中,是否要获取正在进行交易的网络用户名?

1 个答案:

答案 0 :(得分:0)

对不起我在问之前应该做一些研究。无论如何,它可能对其他人有用。

我找到了这个函数[Host_Name()],它返回进行交易的计算机的名称。