SQLServer如何获取客户端IP

SQLServer如何获取客户端IP
很多用户询问如何通过SQLServer获取客户端IP从而定位一些问题,比如链接泄露,其实主要是利用几个相关视图,如下给出一些SQL方便用户排查

当前链接

 SELECT  CONNECTIONPROPERTY('PROTOCOL_TYPE') AS PROTOCOL_TYPE,
            CONNECTIONPROPERTY('CLIENT_NET_ADDRESS') AS CLIENT_NET_ADDRESS 

所有链接

  SELECT
      SP.SPID,
      SP.LOGINAME,
      SP.LOGIN_TIME,
      SP.HOSTNAME,
      SP.PROGRAM_NAME,
      DC.CLIENT_TCP_PORT,
      DC.CLIENT_NET_ADDRESS
    FROM SYS.SYSPROCESSES AS SP
    INNER JOIN SYS.DM_EXEC_CONNECTIONS AS DC
      ON SP.SPID = DC.SESSION_ID
    WHERE SP.SPID > 50
    AND DC.AUTH_SCHEME='SQL'

查看更详细的链接参数配置

  SELECT * FROM SYS.DM_EXEC_SESSIONS WHERE SESSION_ID=之前获取的SPID

------获取

Select SYSTEM_USER 当前用户名
, USER_NAME() 当前所有者
,db_Name() 当前数据库
,@@SPID 当前进程号
,(select top 1 FileName from master..sysdatabases where name=db_name()) 数据库文件
,HOST_ID () 客户端__ID
,APP_NAME() 客户端程序
,HOST_NAME() 客户端电脑
,(select top 1 net_address from master..sysprocesses where spid=@@SPID) 客户端_MAC
,ServerProperty('MachineName') 服务器电脑
,(select top 1 net_address from master..sysprocesses where hostname=ServerProperty('MachineName')) 服务器_MAC
,ServerProperty('ServerName') SQL实例
,ServerProperty('Edition') SQL版本
,ServerProperty('ProductVersion') SQL版本号
,ServerProperty('ProductLevel') SQL补丁SP
,ServerProperty('ProcessID') SQL进程ID
,@@version 版本信息串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值