本文介绍通过控制台会话管理和SQL命令查看访问RDS实例的IP地址的方法。您可以获取到当前正在连接到RDS实例的所有用户信息及用户主机IP,以及历史已建连接记录,帮助您更好地管理和监控数据库访问情况。
方法一:通过控制台会话管理查询
您可以登录RDS控制台或DAS控制台,查看RDS实例正在使用中以及历史已建连接会话详情。
查询正在使用中的连接
该方式仅支持RDS MySQL和RDS PostgreSQL实例。
通过RDS控制台
登录RDS控制台并进入RDS实例详情页,在左侧导航栏选择自治服务> 一键诊断。
在会话管理页面下,通过筛选全部会话,即可查看正在连接到该RDS实例的所有用户信息及用户主机IP。
您还可以在会话管理页面最底部,查看到正在连接到RDS实例的所有会话的统计数据。
通过DAS控制台
登录DAS控制台,在左侧导航栏中,单击实例监控。
找到目标实例,单击实例ID,进入目标实例详情页。
在实例详情页的左侧导航栏,单击实例会话。
在会话管理页面下,通过筛选全部会话,即可查看正在连接到该RDS实例的所有用户信息及用户主机IP。
您还可以在会话管理页面最底部,查看到正在连接到RDS实例的所有会话的统计数据。
查询历史已建连接
该方式仅支持RDS MySQL实例。
通过RDS控制台
登录RDS控制台并进入RDS实例详情页,在左侧导航栏选择自治服务> SQL洞察和审计。
在审计页面下,通过筛选时间范围,并选择操作类型为LOGIN,即可查看连接到该RDS实例的所有用户信息及用户主机IP。
通过DAS控制台
登录DAS控制台,在左侧导航栏中,单击实例监控。
找到目标实例,单击实例ID,进入目标实例详情页。
在实例详情页的左侧导航栏,单击
。在审计页面下,通过筛选时间范围,并选择操作类型为LOGIN,即可查看连接到该RDS实例的所有用户信息及用户主机IP。
方法二:通过SQL命令查询
RDS MySQL实例
连接RDS MySQL实例后,执行如下SQL,即可查询特定用户的当前活动会话。如需查询历史连接记录,请通过方法一:通过控制台会话管理查询。
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER='用户名';
RDS SQL Server实例
连接RDS SQL Server实例后,执行如下SQL,即可获取与此实例建立的所有连接的详细信息。查询结果包括连接时间、IP地址等,参数详情请参见微软官方文档。
SELECT
DEC.CONNECT_TIME,
DEC.CLIENT_NET_ADDRESS,
SP.LOGINAME,
SP.STATUS,
SP.HOSTNAME,
SP.PROGRAM_NAME,
DES.CLIENT_INTERFACE_NAME,
DES.LAST_REQUEST_START_TIME,
DES.ORIGINAL_LOGIN_NAME,
DB_NAME (DES.DATABASE_ID) AS DBNAME,
SP.LASTWAITTYPE
FROM
SYS.DM_EXEC_CONNECTIONS AS DEC
INNER JOIN SYS.SYSPROCESSES AS SP ON SP.SPID = DEC.SESSION_ID
INNER JOIN SYS.DM_EXEC_SESSIONS AS DES ON SP.SPID = DES.SESSION_ID
WHERE
DEC.SESSION_ID > 50
AND SP.PROGRAM_NAME NOT IN('DBAgent')
AND SP.HOSTNAME <> HOST_NAME()
AND SP.LOGINAME NOT IN('aurora', 'rds_service','NT AUTHORITY\SYSTEM','NT AUTHORITY\NETWORK SERVICE')
RDS PostgreSQL实例
相关操作
如需查询RDS实例上的用户,可在实例详情页的账号管理页面查看。如需修改用户账号权限,请参见修改MySQL账号权限、修改SQL Server账号权限、修改PostgreSQL账号权限。
如果您准备通过命令行或客户端登录数据库,则需要预先将ECS或本地设备的IP地址添加到RDS实例的IP白名单中,再根据访问类型获取实例对应的内网连接地址或外网连接地址后,才能正常访问实例。您可在实例详情页的白名单与安全组页面查看已添加的IP,或新增需要访问实例的IP。相关操作,请参见设置MySQL白名单、设置SQL Server白名单、设置PostgreSQL白名单。
相关文档
适用引擎
RDS MySQL
RDS SQL Server
RDS PostgreSQL