我有插入/更新/刪除的觸發器。這工作正常。另外,我需要客戶的IP地址進行更改。我需要在T-SQL中,這意味着,不是以任何Web形式,而是在SQL/T-SQL中,而我的觸發器將被解僱。如何從SQL Server 2008本身獲取客戶端IP地址?
另外我走了一步,並得到了主數據庫中名爲xp_cmdshell
的存儲過程,當與ipconfig
執行時,我們可以獲得IP地址。我認爲這隻有當你有數據庫的管理訪問權時纔有效。我的主機是共享主機,所以我沒有這種特權。還有其他出路嗎?
請幫
在此先感謝
請注意:我沒有我的SQL Server 2008數據庫的管理權限。我需要一個解決方案作爲認證用戶。
另一個更新:
我已經得到了解決,這會爲我的方案的工作查詢
SELECT hostname, net_library, net_address
FROM sys.sysprocesses
WHERE spid = @@SPID
它執行的必要的,但只有一個問題,那net_address不以IP格式。下面是我的結果:
hostname net_library net_address
IPC03 TCP/IP AE8F925461DE
我急切地想知道:
什麼是net_address這裏?是MAC地址還是一些IP地址等?
有什麼辦法可以將net_address轉換爲ip嗎?
小小的要求:
接聽/評論/ downvoting之前,我想請你去通過這個問題,第一,徹底。我發現有些人沒有正確處理問題就發表評論/低調。沒有問題,每個人都會犯錯誤。但並非每次都會犯錯。 :)
您提到您的數據庫已託管,但該應用程序如何工作?在大多數ASP.NET應用程序中,用戶連接到網站,然後網站連接到數據庫。所以數據庫服務器不知道誰是'真正'的最終用戶。如果您可以提供一些關於您的應用程序以及用戶如何連接到數據庫的詳細信息,則可能會有人提出建議。 – Pondlife 2012-03-30 10:35:39
你可以在http://msdn.microsoft.com/en-us/library/ms179881.aspx找到關於** net_address **的詳細信息 – 2012-03-30 14:40:18