页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题现象

1、以oracle作为知识库,连接时报错 ORA-28040: No matching authentication protocol,如何解决?

2、Oracle数据源测试通过,在数据库管理获取资源的时候出现ORA-28040: No matching authentication protocol。


问题原因

没有匹配的身份验证协议,Smartbi内置驱动jar版本与当前换使用oracle的jdk版本不匹配导致。

解决方法

1、排查数据库方面,先确定身份验证协议已开启,数据库工具是否能够连接上该数据库;

2、排查数据库参数设置,12C以前的版本中是在sqlnet.ora文件增加参数SQLNET.ALLOWED_LOGON_VERSION, 该参数在12C中已被sqlnet.allowed_logon_version_server 和sqlnet.allowed_logon_version_client替代,修改方式如下;

    (1)在cd $ORACLE_HOME/network/admin/sqlnet.ora中,修改数据库认证协议如下:   

         数据库未修改之前:

         在sqlnet.ora中:

                  SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10  (认证级别调整)
                  SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

         数据库修改之后:

                  SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
                  SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

    (2)修改完之后连接,可能会报出另一个错误 ORA-01017: 用户名/口令无效; 登录被拒绝

         请在数据库中修改登录用户对应的密码(使用管理员身份登录并执行sql:alter user (username) identified by (123456);)之后重新登录即可。(注意:数据库中修改完后,smartbi连接对应的密码也需要改成一致)

         参考文档:https://zhuanlan.zhihu.com/p/99664523


3、将可以连通的环境的驱动添加到Smartbi中,选择此驱动连接数据库。若JDBC连接方式的数据库连接工具测试连接通过,可用数据库连接工具本身内置的驱动替换;若无法获取数据库连接工具本身内置的驱动,各版本oracle数据库对应的驱动版本可参考:https://blog.csdn.net/qq_39477018/article/details/104676717

添加驱动可参考: 如何向Smartbi中添加数据库驱动jar

19C数据库驱动可参考:Oracle 19c使用产品内置驱动的一些问题