2014-02-15 43 views
0

我從我的客戶那裏獲得了他現有SQL Server數據庫的任務。如何獲取執行交易的網絡用戶

他們有一個擁有所有管理權限的用戶的數據庫。他們管理應用程序級別的可訪問權限。

該任務是創建一個審計表,來審計誰從數據庫表中刪除了INSERT,UPDATE,& DELETE。

這個表的結構是簡單的: 表名 操作{INSERT,UPDATE,或DELETE} 時間戳,用戶名

審計日誌被請求通過觸發器是在服務器端。

所以這是一個簡單的任務:添加觸發到每個表&每個事件。在觸發器內部,向審計表插入一個新行,其值爲(TableName,Operation,TimeStamp,& UserName)。

問題是所有用戶的用戶名(SQL:SYSTEM_USER)始終相同,因爲它們全都使用同一個管理員帳戶連接。

無論如何,在SQL服務器中,獲取正在進行交易的網絡用戶名?

回答

0

對不起,我應該問一些問題之前,我應該做一些研究。無論如何,這可能對其他人有用。

我發現這個函數[Host_Name()],它返回進行事務的計算機的名稱。