sys租户新建用户无法登录

【 使用环境 】测试环境
【 OB or 其他组件 】ob
【 使用版本 】4.0
【问题描述】obd 部署3节点集群,使用obclient 登录root@sys,执行 create user 在sys租户常见用户,完成后obclient 指定新建的用户和密码,无法登录,提示 ERROR 1045(42000): Access denied for user ‘obuser’@‘xxx.xxx.xxx.xxx’ (using password: YES)
【复现路径】

obclient -h10.100.1.1 -uroot@sys -P12881
obclient [(none)] > create user if not exists obuser IDENTIFIED BY ‘abc111___’;
Query OK, 0 rows affected

oblcient[(none)] > use oceanbase;
oblcient[(oceanbase)] > select tenant_id, user_name, passwd, host from __all_user;
tenant_id | user_name | passwd | host | info
0 | root | | % | system administrator
0 | ob_monitor | *a55… | % |

查看__all_user 确定已经完成用户创建,随后使用一下命令连接失败
oblcient -h10.100.1.1 -P12881 -uobuser@sys -pabc111__;
ERROR 1045 (42000): Access denied for user ‘obuser’@‘xxx.xxx.xxx.xxx’ (using password: YES)

稍等,我本地复现看下

好的,感觉很奇怪的问题

问题搞清楚了,你需要给下新user权限,执行下:GRANT ALL PRIVILEGES ON *.* TO obuser WITH GRANT OPTION;

是这么授权吗?

grant all privileges on *.* to obuser with grant option;

是的

至少也得赋个连接登录权限吧 :smile:

需要 flush privileges; 或者其他命令吗?试了授权 grant all privileges 仍然不行

请教一下,连接登录权限的授权sql 是什么?

Sorry, 我以为mysql 有类似 oracle CREATE_SESSION 的权限。

grant all privileges on *.* to obuser with grant option; 执行授权后还不能登录么?

需要这么大权限?select权限够不够?

自己测试的话,一般都给all。

不行,你那边试过可以是吗?

我按照你的步骤,加上执行grant,是可以的,我的步骤是这样的:

  1. create user if not exists obuser IDENTIFIED BY ‘abc111___’;
  2. GRANT ALL PRIVILEGES ON *.* TO obuser WITH GRANT OPTION;
  3. ctrl + d 退出
  4. oblcient -h127.0.0.1 -Pxxx -uobuser@sys -pabc111__;

用一样的方法还是不行

稍等,我试一下你的那个版本

没有赋权啊,兄弟

GRANT ALL PRIVILEGES
授权了得

确认是可以的,但不清楚你那边为啥不行。

1 个赞