【MSSQL】How can i see what IP address made the request to SQL Server?
How can i see what IP address made the request to SQL Server?
#背景
前提:有一个服务定时读取某台服务器上的sql server 数据库,轮询处理一些事务;
问题:突然发现数据库数据不对劲,于是将服务器上的服务关闭,但仍发现数据库上的数据发生变动;
#解决方案
第一步:通过sql server profiler 跟踪服务器上的数据库;
第二步:在跟踪得到的数据中找到影响数据的sql语句,并找到该条记录的SPID属性;
第三步:执行如下sql,可获取执行该sql的客户端主机的主机名;(sql中的@@SPID指的就是第二步图片中的SPID字段)
SELECT hostname FROM sys.sysprocesses WHERE spid = @@SPID --SELECT hostname FROM sys.sysprocesses WHERE spid = 53
第四步:执行如下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
#结果
通过上述方案,发现出现问题的原因是,我在另一台主机上也安装了这个服务,连接的是同一个数据库,所以,吧啦吧啦;
作者:willingtolove
出处:http://www.cnblogs.com/willingtolove/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。