Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何获取正在执行事务的网络用户_Sql Server_Sql Server 2008 - Fatal编程技术网

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

Sql server 如何获取正在执行事务的网络用户,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我从客户那里得到了一个关于他现有SQL Server数据库的任务 他们有一个数据库,有一个拥有所有管理员权限的用户。它们管理应用程序级别的可访问性权限 任务是创建审核表,审核从数据库表中插入、更新和删除的用户 此表的结构很简单: 表名 操作{插入、更新或删除} 时间戳, 用户名 通过触发器请求审核日志位于服务器端 因此,这是一项简单的任务:向每个表和每个事件添加触发器。在触发器内部,插入一个新行以审核表,其值为(TableName、Operation、TimeStamp和UserName) 问题

我从客户那里得到了一个关于他现有SQL Server数据库的任务

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

任务是创建审核表,审核从数据库表中插入、更新和删除的用户

此表的结构很简单: 表名 操作{插入、更新或删除} 时间戳, 用户名

通过触发器请求审核日志位于服务器端

因此,这是一项简单的任务:向每个表和每个事件添加触发器。在触发器内部,插入一个新行以审核表,其值为(TableName、Operation、TimeStamp和UserName)

问题是所有用户的用户名(SQL:SYSTEM\u USER)总是相同的,因为他们都使用相同的管理员帐户连接


在SQL server中,是否还有其他方法可以获取进行交易的网络用户名?

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

我找到了这个函数[Host_Name()],它返回进行事务处理的计算机的名称