java客户端用新创建的DBA用户执行ngql没反应

nebula版本:2.5.0
nebula-java版本:2.0.0-rc1

新建用户与授权
CREATE USER xyz WITH PASSWORD ‘xxxxxx’;
GRANT ROLE DBA ON test_space TO xyz;

程序用这个DBA用户执行查询,查不到任何数据,也不报错,但是程序用GOD用户就可以。
但是用同一个DBA用户同样的语句在nebula-console又可以正常连接与查询,非常奇怪。

java执行代码

nebulaSession = nebulaPool.getSession(username, password, false);
  private ResultSet getResultSet(Session nebulaSession, String nGql) {
        ResultSet rs = null;
        try {
            rs = nebulaSession.execute(String.format("USE %s;%s", space, nGql));
        } catch (Exception ex) {
            log.error("NebulaSession.execute {}.", nGql, ex);
        }
        return rs;
    }
  1. java 里分开 use 语句,类似
session.execute("USE xxx")
session.execute(query)
  1. 在 console 登陆以后,执行
use xxx;go from xxx

看是不是一样的错
3. catch 只能捕获异常,如果服务端返回是错误的话,你应该校验返回的 isSucceed

2.5.0 的 use + 语句有 bug,2.6 修复了

4 个赞

好,谢谢,我们试试

1 个赞

如果问题解决了的话,可以勾选 HarrisChu 的回复为解决方案哈~

1 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。