使用obclient连接oblogproxy的auth问题

【 使用环境 】测试环境
【 OB or 其他组件 】obclient和oblogproxy和ob
【 使用版本 】oblogclient:1.1.2 oblogproxy:2.02bp1 ob
【问题描述】使用obclient官网实例代码,其中setRsList这个写的是ob的全部ip(10.1.3.81,10.12.3.45,10.12.3.44),setUsername写的是非系统租户用户cm_member@obcms,setSysUsername写的是root@sys用户名,非租户是obcms,setClusterUrl没有设置,然后连接的时候会报鉴权失败,
看日志是使用cm_member去81鉴权失败,但是用obclient -ucm_member@obcms在3个ip上都可以完成登录的,但是如果setUsername写成root@sys就可以通过鉴权

【复现路径】问题出现前后相关操作
【附件及日志】
[2024-08-15 09:13:59] [info] ob_access.cpp(213): About to auth user: cm_member@obcms for observer: 10.12.3.45:2881

[2024-08-15 09:13:59] [info] mysql_protocol.cpp(49): Connect to server success: 10.12.3.45:2881, user: root@sys

[2024-08-15 09:13:59] [info] mysql_protocol.cpp(120): Auth user success of server: 10.12.3.45:2881, user: root@sys

[2024-08-15 09:13:59] [info] ob_access.cpp(227): About to auth tenant:obcms of user:cm_member@obcms

[2024-08-15 09:13:59] [info] mysql_protocol.cpp(211): Query obmysql SQL:SELECT server.svr_ip, server.inner_port, server.zone, tenant.tenant_id, tenant.tenant_name FROM oceanbase.__all_resource_pool AS pool, oceanbase.__all_unit AS unit, oceanbase.__all_server AS server, oceanbase.__all_tenant AS tenant WHERE tenant.tenant_id=pool.tenant_id AND unit.resource_pool_id=pool.resource_pool_id AND unit.svr_ip=server.svr_ip AND unit.svr_port=server.svr_port AND tenant.tenant_name=‘obcms’

[2024-08-15 09:13:59] [info] mysql_protocol.cpp(49): Connect to server success: 10.1.3.81:2881, user: cm_member@obcms

[2024-08-15 09:13:59] [error] mysql_protocol.cpp(124): Auth user failed of server: 10.1.3.81:2881, user: cm_member@obcms

[2024-08-15 09:13:59] [error] ob_access.cpp(254): Failed to auth from tenant server: 10.1.3.81:2881, ret:-1

看您的描述我很难判断是哪部分的问题,可以的话麻烦把配置参数脱敏之后贴出来。

oblogclient 的使用可以参考 oblogclient/oblogclient-sample/README_CN.md at master · oceanbase/oblogclient · GitHub

几个注意点:

  • logproxy 版本需要跟 observer 适配,参考 https://github.com/oceanbase/oblogproxy/releases/tag/v2.0.2_BP1
  • logproxy 所在机器需要能够通过 rslist 中的 ip 和端口连接到 observer
  • sys 租户的用户名不应该包含 @sys 后缀
  • sys 租户和业务租户的用户都需要有非空密码
  • 业务租户的用户需要有订阅订阅白名单和 oceanbase 这个库的读权限

这个问题有进展了吗