2010-12-16 75 views
0

我們有大量不同的桌面應用程序,電子表格(1500+)等訪問SQL Server。我們希望開始登錄服務器,該服務器將盡可能多地告訴我們哪些用戶在哪些機器上正在執行什麼sql,從哪個應用程序(windows exe /進程名稱)執行。具體來說,我對機器名稱和用戶名感興趣,但希望獲得儘可能多的信息。可能確定在SQL Server(2000)上執行查詢的machine_name和windows用戶名?

這可能嗎?

重要提示:我的興趣一般,但我目前的情況是SQL Server 2000中

回答

2

要檢查當前狀態:

在SQL 2000,你會看在sysprocesses

  • hostname工作站的名稱。
  • program_name應用程序的名稱。

SQL 2005,你在sys.dm_exec_sessions

  • host_name客戶 工作站的名稱是特定於 會話照顧。 內部會話的值爲NULL。可以爲空。
  • program_name發起會話的客戶端程序名稱 。對於內部會話,值 爲NULL。是 可以爲空。

要記錄這些信息,你會用SQL tracing,跟蹤SQL:BatchCompletedRPC:Completed事件。跟蹤,即使在服務器端完成,也會增加大量的開銷,而且非常不可能在沒有顯着的性能下降的情況下支付。請參閱Monitoring Events

+0

上的用戶名的任何想法? nt_username似乎只與使用Windows身份驗證的會話有關。 net_address返回似乎可能適用於我的mac地址。 – tbone 2010-12-16 12:48:29

相關問題