【问题标题】:How to get the network user who is executing the transaction如何获取正在执行交易的网络用户
【发布时间】:2014-02-15 16:12:42
【问题描述】:

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

他们有一个数据库,其中包含 1 个具有所有管理员权限的用户。他们管理应用程序级别的访问权限。

任务是创建一个审计表,审计谁从数据库表中插入、更新和删除。

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

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

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

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

无论如何,在 SQL Server 中,是否有获取进行交易的网络用户名?

【问题讨论】:

    标签: sql-server sql-server-2008


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      相关资源
      最近更新 更多