本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7919228.html?templateId=171...
问题描述
应用中配置有多个数据库用户,其中某个用户无法正常登录数据库。
应用日志报错:

使用 dbeaver 登录这个异常用户,仍然报错:

使用 yasql,从 dbeaver 所在主机,用异常用户信息登录数据库,可以正常登录。
listener.log 记录了异常登录时的信息,类似:

问题分析
已知:如果打开了白名单,但登录主机不在白名单配置中(即配置了不能登录数据库时),那么,从这个 IP 登录数据库,会出现此种情况(报错 io fail:IO.EOF),白名单配置方法,目前有多种:
- 在 $YASDB\_DATA/config/yasdb\_net.ini 中进行配置
- 使用 yasboot whitelist 命令进行配置
- 在 profile 中,使用 INVITED\_NODES、EXCLUDED\_NODES 参数进行配置。
检查数据库,该数据库未见有以上配置,判断非数据库配置问题。
由于 JDBC 能登录(部分用户),YASQL 能登录(全部用户),可知 Java 版本正常可用。
根据之前遇到的问题处理记录,可以推断:
- 这个用户名可能触发了什么关键词,被网络的防火墙的敏感词拦截截断了
- 之前在内部和外部其它用户都遇到过,无一例外都是上面这个原因
- 要么让他们的 it 仔细排查,要不换个用户名
问题处理
更换用户名,规避问题
问题规避
<table cellspacing="0"><tbody><tr><td><p><span>## 1,先创建应用用户,比如:</span></p><p><span>SQL> create user N1DP_C2MS_SZLH identified by "xxx";</span></p><p><span>## 2,赋予用户权限:</span></p><p><span>SQL> grant connect to N1DP_C2MS_SZLH;</span></p><p><span>SQL> grant resource to N1DP_C2MS_SZLH;</span></p><p><span>SQL> grant SELECT_CATALOG_ROLE to N1DP_C2MS_SZLH;</span></p><p><span># 导出 & lt;/span></p><p><span> source /data/yasdb_home/yashandb/23.2.2.100/conf/yasdb.bashrc</span></p><p><span>exp NDP_CMS_SZLH/xxx file=/data/9he/soft/NDP_CMS_SZLH.dmp owner=NDP_CMS_SZLH</span></p><p><span># 导入 & lt;/span></p><p><span> source /data/yasdb_home/yashandb/23.2.2.100/conf/yasdb.bashrc</span></p><p><span> imp N1DP_C2MS_SZLH/xxx file=/data/9he/soft/NDP_CMS_SZLH_20231021.dmp fromuser=NDP_CMS_SZLH</span></p></td></tr></tbody></table>
问题补充 此环境也遇到了,执行某些 sql 查询时,触发以上报错的情形,但执行简单 sql(如 select sysdate from dual) 正常,报错原因与上述报错原因一致。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3066404/ ,如需转载,请注明出处,否则将追究法律责任。