使用obd部署集群,怎么限制root账号的远程登录

使用obd部署社区版集群,怎么限制root账号的远程登录?obd版本:3.1.2。

2 个赞

obd限制不了,和mysql一样,到业务租户中,把root帐的%号修改成指定的网段或者IP。

3 个赞

需要看是哪一种租户类型,如果是mysql租户的话,我觉得可以考虑用mysql创建用户的形式限制地址

2 个赞

没设置过mysql租户的密码,默认不应该是空吗。但是我使用mysql租户登录的时候提示密码不对

@论坛小助手

根据您的问题,我将分两部分进行解答:


第一部分:如何限制 root 账号的远程登录

在 OceanBase 数据库中,可以通过设置租户的白名单功能来限制 root 账号的远程登录。具体操作如下:

  1. 修改系统变量 ob_tcp_invited_nodes
    该变量用于控制哪些 IP 地址可以访问当前租户。默认值为 127.0.0.1,::1,表示仅允许本机连接。如果需要进一步限制 root 账号的远程登录,可以将其设置为仅允许本地访问。

    • 使用 obclient 连接到目标租户(例如 MySQL 租户),执行以下 SQL 命令:

      ALTER SYSTEM SET ob_tcp_invited_nodes = '127.0.0.1' EFFECTIVE IMMEDIATE;
      

      或者,如果您希望支持 IPv6:

      ALTER SYSTEM SET ob_tcp_invited_nodes = '127.0.0.1,::1' EFFECTIVE IMMEDIATE;
      
    • 如果您需要更灵活的配置,可以使用通配符或子网掩码。例如:

      • 允许 192.168.1.% 的所有 IP 访问:
        ALTER SYSTEM SET ob_tcp_invited_nodes = '192.168.1.%' EFFECTIVE IMMEDIATE;
        
      • 允许 192.168.1.0/24 的所有 IP 访问:
        ALTER SYSTEM SET ob_tcp_invited_nodes = '192.168.1.0/24' EFFECTIVE IMMEDIATE;
        
  2. 验证设置是否生效
    执行以下命令查看当前租户的白名单配置:

    SHOW PARAMETERS LIKE 'ob_tcp_invited_nodes';
    
  3. 注意事项

    • 修改白名单不会影响已创建的会话(session)。
    • 如果需要完全禁止远程访问,确保 ob_tcp_invited_nodes 只包含本地回环地址(如 127.0.0.1::1)。

参考文档


第二部分:MySQL 租户默认密码问题

关于您提到的“MySQL 租户默认密码为空”的问题,以下是可能的原因及解决方案:

  1. 默认密码不一定是空
    在 OceanBase 社区版中,通过 obd 部署集群时,MySQL 租户的 root 用户密码通常会被设置为随机生成的密码,而不是空密码。这是为了提高安全性。

  2. 查找默认密码
    如果您没有手动设置密码,可以通过以下方式获取默认密码:

    • 查看 obd 部署时的日志文件,通常会在部署完成后输出默认密码。
    • 如果日志中未明确显示密码,可以尝试重置密码。
  3. 重置 MySQL 租户的 root 密码
    如果忘记或无法找到默认密码,可以通过以下步骤重置密码:

    • 使用 obclient 以管理员身份连接到系统租户(sys),然后切换到目标 MySQL 租户并重置密码。例如:
      -- 连接到系统租户
      obclient -h<IP> -uroot@sys -P2881 -p
      
      -- 切换到目标 MySQL 租户
      ALTER TENANT mysql_tenant READ ONLY=FALSE;
      
      -- 重置 root 用户密码
      ALTER USER 'root'@'%' IDENTIFIED BY 'new_password';
      
  4. 验证登录
    使用新密码重新尝试登录 MySQL 租户:

    obclient -h<IP> -uroot@mysql_tenant -P2881 -p
    
  5. 注意事项

    • 如果您在部署时自定义了密码,请确保使用正确的密码尝试登录。
    • 如果仍然无法登录,建议检查 obd 的部署日志或联系部署人员确认密码。

参考文档

  • 文档标题:[部署 OceanBase 集群 → 通过 API 部署](#步骤 7:连接 OceanBase 集群)
  • 文档标题:用户和权限概述

总结

  1. 若要限制 root 账号的远程登录,请通过修改 ob_tcp_invited_nodes 系统变量实现。
  2. 默认情况下,MySQL 租户的 root 用户密码并非空密码,而是随机生成的。如果忘记密码,可以通过上述方法重置。

如果仍有疑问,请提供更多上下文信息(如部署日志、具体错误信息等),以便进一步排查问题。

具体信息可参考以下文档:

  1. 使用 systemd 部署 OceanBase 数据库
  2. 部署 OceanBase 集群
  3. 用户和权限概述
  4. 使用 MySQL 租户做常见数据库开发
  5. 使用 OCP 接管 obd 部署的集群
  6. 使用 OceanBase 导数工具在 OceanBase 集群 MySQL 租户间迁移数据
  7. 使用 OceanBase 导数工具从 OceanBase 集群 Oracle 租户迁移数据到 MySQL 租户
  8. 接管非 obshell 部署集群
  9. 网络安全访问控制