2010-10-20 57 views
1

我管理的一個最重要的數據庫設計不佳。使用它的程序只使用1次登錄,這恰好是系統管理員。編輯和刪除操作已完成,因此更改跟蹤很困難。在SQL 2000中審計設計非常糟糕的數據庫系統

此外,它缺乏適當的審計功能,所以我不能告訴哪個用戶編輯或刪除了某個記錄。

我想我可能會訴諸使用SQL觸發器並輸出記錄信息以及編輯/刪除它的用戶信息。我無法使用LoginName,因爲該程序只使用一次登錄。

我可以使用觸發器導出其他信息,例如發送刪除命令的桌面機器名稱嗎?

是否有任何其他信息可以幫助我?

回答

4

你可能會看sys.sysprocesses表(我認爲在SQL Server 2000中的sysprocesses)。它包含通常在sp_who2存儲過程的輸出中看到的信息。它包括主機名,它是連接到SQL Server的計算機。其他一些列也可能有用。

+1

+1。即將回答這個'select hostname,program_name,nt_domain,nt_username,loginame from master..sysprocesses where spid = @@ spid' – 2010-10-20 20:33:50

+1

+1,'HOST_NAME()'函數也可用於獲取主機名。此值可能不準確(由客戶端應用程序設置),但對此可能足夠可靠。 – 2010-10-20 20:39:48