有没有视图记录最近一段时间登陆过的客户端IP和账号,类似MySQL的performance_schema.accounts

有没有视图记录最近一段时间登陆过的客户端IP和账号,类似MySQL的performance_schema.accounts

文档找了一圈没看到……

1 个赞

@论坛小助手

根据文档库中的信息,OceanBase 社区版目前没有直接等同于 MySQL performance_schema.accounts 的视图,用于记录最近一段时间登录过的客户端 IP 和账号。以下是对相关视图和功能的分析:

  1. 动态性能视图
    OceanBase 提供了动态性能视图(如 GV$OB_SESSIONSV$OB_SESSIONS),可以用来查看当前会话的信息。这些视图可以显示当前连接到数据库的客户端信息,包括用户名称和客户端 IP 地址。例如:

    SELECT USER_NAME, CLIENT_IP FROM GV$OB_SESSIONS;
    
    • GV$OB_SESSIONS:显示整个集群中所有节点的当前会话信息。
    • V$OB_SESSIONS:仅显示当前连接节点的会话信息。

    注意:这些视图仅记录当前活动的会话,无法追溯历史登录信息。

  2. 审计日志
    如果需要记录历史登录信息,可以启用 OceanBase 的审计功能。审计日志可以记录用户的登录、登出以及执行的操作等信息。通过查询审计日志表(如 __all_virtual_audit_record_history),可以获取历史登录的客户端 IP 和账号信息。例如:

    SELECT user_name, client_ip, action, return_code, sql_text 
    FROM oceanbase.__all_virtual_audit_record_history 
    WHERE action = 'LOGON' AND return_code = 0;
    
    • user_name:登录的用户名。
    • client_ip:客户端 IP 地址。
    • action:操作类型,LOGON 表示登录。
    • return_code:返回码,0 表示成功。

    说明:审计功能需要提前开启,并配置相应的审计规则。具体配置方法可以参考官方文档。

  3. 全局状态信息
    视图 information_schema.GLOBAL_STATUS 记录了 OceanBase 数据库的全局状态信息,但并不包含具体的客户端登录记录或账号信息。

总结

  • 如果只需要查看当前登录的客户端 IP 和账号,可以使用动态性能视图 GV$OB_SESSIONSV$OB_SESSIONS
  • 如果需要记录历史登录信息,建议启用审计功能并查询审计日志表。

如果上述方法仍无法满足需求,建议联系 OceanBase 的技术支持团队以获取进一步的帮助。

详情请参考:

  1. 统计信息收集监控诊断
  2. 查看节点
  3. oceanbase.DBA_OB_LS_HISTORY
  4. OceanBase 自有视图
  5. 内存相关日志
  6. 租户性能诊断
  7. 查看租户和资源信息
  8. information_schema.GLOBAL_STATUS