【MSSQL】How can i see what IP address made the request to SQL Server?

时间:2024-06-28 11:05:38

How can i see what IP address made the request to SQL Server?

#背景

  前提:有一个服务定时读取某台服务器上的sql server 数据库,轮询处理一些事务;

  问题:突然发现数据库数据不对劲,于是将服务器上的服务关闭,但仍发现数据库上的数据发生变动;

#解决方案

  第一步:通过sql server profiler 跟踪服务器上的数据库;

  第二步:在跟踪得到的数据中找到影响数据的sql语句,并找到该条记录的SPID属性;

  【MSSQL】How can i see what IP address made the request to SQL Server?

  第三步:执行如下sql,可获取执行该sql的客户端主机的主机名;(sql中的@@SPID指的就是第二步图片中的SPID字段)

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

【MSSQL】How can i see what IP address made the request to SQL Server?

  第四步:执行如下sql,可获取执行该sql的客户端主机的IP;(client_net_address 为客户端ip,local_net_address为所连接的主机ip)

SELECT client_net_address, local_net_address
FROM sys.dm_exec_connections
WHERE session_id = 53

【MSSQL】How can i see what IP address made the request to SQL Server?

#结果

  通过上述方案,发现出现问题的原因是,我在另一台主机上也安装了这个服务,连接的是同一个数据库,所以,吧啦吧啦;