【使用版本】OceanBase 社区版 V4.2.x(经 ODP 2883 端口连接)
【环境背景】
在业务租户里执行了 CREATE USER ‘app’@’%’ IDENTIFIED BY ‘xxx’; GRANT ALL ON db1.* TO ‘app’@’%’;,从应用服务器连 2883 端口报连接被拒绝(不是密码错误)。
【问题描述】
- MySQL 模式下用户的 host(user@‘host’)匹配和集群级参数 ob_tcp_invited_nodes 的白名单,是「与」的关系还是「或」的关系?两边都要放行吗?
- ob_tcp_invited_nodes 默认值是什么?用 OBD 部署的集群这个值通常被设成了什么,会不会挡住外部网段?
- 排查这类连接问题时,有没有系统视图或日志能确认「连接是在哪一层被拒的」?
想把这个双层过滤的机制彻底弄明白。
论坛小助手
#4
在 OceanBase 数据库中,租户用户的 user@'host' 定义了允许连接的用户以及这些用户可从哪些主机进行访问。ob_tcp_invited_nodes 则是集群层面的安全控制参数,用来限制哪些IP地址可以访问当前租户。这两个配置的作用是独立的但同时生效的,意味着它们之间形成了一个「与」的关系:即不仅要满足用户定义的 host 范围,也要满足 ob_tcp_invited_nodes 设置的白名单范围,才能成功建立连接。\n根据文档描述,默认情况下 ob_tcp_invited_nodes 的值为 '127.0.0.1,::1',表示仅本地回环地址能够连接该租户,除非你明确更改了这一设置。如果你使用 OBD 部署集群,并未特别指定修改此参数,则很可能是维持默认状态或按照特定环境需求进行了调整,这可能会阻挡来自外部网段的访问尝试。">",\
更多信息请查看:
- 访问控制
- ob_tcp_invited_nodes