2009-11-04 62 views
7

我需要清楚地看到什么IP地址使SQL查询到SQL服务器。 我想使用SQL事件探查器,但似乎没有办法我可以以某种方式区分查询来自的机器(浏览器)。它只有Web服务器和sql服务器之间的通信细节。有没有对我来说(任何未知的日志?),这将允许我看到查询来自原始机器的标识?如何查看向SQL Server发出请求的IP地址?

感谢您的任何建议。

HF

+0

好吧..是的..谢谢你的确认(除非我明确地发送IP到数据库,没有办法说)。谢谢。 – HotFrost 2009-11-04 16:04:28

回答

0

如果你没有在应用程序中编写代码从Web服务器,你将不得不看的网络日志数据库通过客户端地址 - 他们会给客户端的IP地址。

3

就SQL Server而言,请求将始终来自您的Web服务器。您需要捕获并记录您的Web应用程序中的IP地址。

4

SELECT hostname FROM sys.sysprocesses WHERE spid = @@SPID 

这显然是行不通的得到网络主机的IP地址,如果这就是你要找的内容你可以得到当前连接的从sysprocesses表中的主机名,或者任何真正的信息对于。

3

像@joshperry说,你可以检索

SELECT client_net_address, local_net_address 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID 
1
客户端地址和服务器地址
SELECT r.client_net_address,sqltext.Text 
    FROM sys.dm_exec_requests req left join sys.dm_exec_connections as r on req.session_id=r.session_id 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext 
+0

你的答案当然值得一点解释。请参阅http://stackoverflow.com/help/how-to-answer。 – 2017-03-08 10:33:43

+1

虽然这段代码片段是受欢迎的,并且可能会提供一些帮助,但如果它包含* how *和* why *的解释](// meta.stackexchange.com/q/114762)问题。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 – 2017-03-08 12:56:33

相关问题