使用obd部署社区版集群,怎么限制root账号的远程登录?obd版本:3.1.2。
obd限制不了,和mysql一样,到业务租户中,把root帐的%号修改成指定的网段或者IP。
需要看是哪一种租户类型,如果是mysql租户的话,我觉得可以考虑用mysql创建用户的形式限制地址
没设置过mysql租户的密码,默认不应该是空吗。但是我使用mysql租户登录的时候提示密码不对
根据您的问题,我将分两部分进行解答:
第一部分:如何限制 root 账号的远程登录
在 OceanBase 数据库中,可以通过设置租户的白名单功能来限制 root
账号的远程登录。具体操作如下:
-
修改系统变量
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;
- 允许
-
-
验证设置是否生效
执行以下命令查看当前租户的白名单配置:SHOW PARAMETERS LIKE 'ob_tcp_invited_nodes';
-
注意事项
- 修改白名单不会影响已创建的会话(
session
)。 - 如果需要完全禁止远程访问,确保
ob_tcp_invited_nodes
只包含本地回环地址(如127.0.0.1
或::1
)。
- 修改白名单不会影响已创建的会话(
参考文档:
- 文档标题:网络安全访问控制
第二部分:MySQL 租户默认密码问题
关于您提到的“MySQL 租户默认密码为空”的问题,以下是可能的原因及解决方案:
-
默认密码不一定是空
在 OceanBase 社区版中,通过obd
部署集群时,MySQL 租户的root
用户密码通常会被设置为随机生成的密码,而不是空密码。这是为了提高安全性。 -
查找默认密码
如果您没有手动设置密码,可以通过以下方式获取默认密码:- 查看
obd
部署时的日志文件,通常会在部署完成后输出默认密码。 - 如果日志中未明确显示密码,可以尝试重置密码。
- 查看
-
重置 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';
- 使用
-
验证登录
使用新密码重新尝试登录 MySQL 租户:obclient -h<IP> -uroot@mysql_tenant -P2881 -p
-
注意事项
- 如果您在部署时自定义了密码,请确保使用正确的密码尝试登录。
- 如果仍然无法登录,建议检查
obd
的部署日志或联系部署人员确认密码。
参考文档:
- 文档标题:[部署 OceanBase 集群 → 通过 API 部署](#步骤 7:连接 OceanBase 集群)
- 文档标题:用户和权限概述
总结
- 若要限制
root
账号的远程登录,请通过修改ob_tcp_invited_nodes
系统变量实现。 - 默认情况下,MySQL 租户的
root
用户密码并非空密码,而是随机生成的。如果忘记密码,可以通过上述方法重置。
如果仍有疑问,请提供更多上下文信息(如部署日志、具体错误信息等),以便进一步排查问题。
具体信息可参考以下文档: