我的客户在他现有的SQL Server数据库上收到了一项任务。
他们拥有一个拥有1名拥有所有管理员权限的用户的数据库。他们管理应用程序级别的可访问性权限。
任务是创建一个审计表,以审计INSERT,UPDATE和&从数据库表中删除。
这个表的结构很简单: 表名 操作{INSERT,UPDATE或DELETE} 时间戳, 用户名
请求审核日志在服务器端通过触发器。
所以它是一个简单的任务:为每个表添加触发器&每个活动。在触发器内,向Audit Table插入一个新行,其值为(TableName,Operation,TimeStamp和& UserName)。
问题是所有用户的用户名(SQL:SYSTEM_USER)始终相同,因为他们都使用相同的管理员帐户连接。
无论如何,在SQL服务器中,是否要获取正在进行交易的网络用户名?
答案 0 :(得分:0)
对不起我在问之前应该做一些研究。无论如何,它可能对其他人有用。
我找到了这个函数[Host_Name()],它返回进行交易的计算机的名称。