SQL Server如何获取客户端IP
SQL Server如何获取客户端IP?
用户的公网IP不固定,使用本地IP查看工具定位到的IP不准确,即使将查询到的本地IP加入了RDS的白名单中,连接RDS的时候也报错。所以用户需要查询到准确的客户端IP才能访问RDS。
场景一
用户的公网IP不固定,使用本地IP查看工具定位到的IP不准确,即使将查询到的本地IP加入了RDS的白名单中,连接RDS的时候也报错。所以,用户需要查询到准确的客户端IP才能访问RDS。
获取客户端IP操作:
1、将IP地址0.0.0.0/0或您公司的IP段加入RDS实例的白名单中
2、使用客户端连接RDS的SQL Server数据库。
3、执行如下命令,查询客户端IP。
SELECT CONNECTIONPROPERTY('PROTOCOL_TYPE') AS PROTOCOL_TYPE,
CONNECTIONPROPERTY('CLIENT_NET_ADDRESS') AS CLIENT_NET_ADDRESS
4、为确保RDS数据库的安全,获取到客户端IP后,请修改RDS实例的白名单,将在步骤1中添加的0.0.0.0/0或您公司的IP段从白名单中删除。
场景二
若您想要统计已连接到RDS的SQL Server数据库的所有IP,或定位一些安全问题,如链接泄露等,您可以使用获取已连接到数据库的所有IP的方法。
获取所有连接到数据库的IP
1、将IP地址0.0.0.0/0或您公司的IP段加入RDS实例的白名单中
2、使用客户端连接RDS的SQL Server数据库。
3、执行如下命令,查询所有连接到数据库的IP。
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'
4、为确保RDS数据库的安全,获取到所有IP后,请修改RDS实例的白名单,将在步骤1中添加的0.0.0.0/0或您公司的IP段从白名单中删除。