页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)

...

问题现象

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

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

Image RemovedImage Added

...


问题原因

原因:没有匹配的身份验证协议,Smartbi内置驱动jar版本与客户使用oracle的jdk版本不匹配导致

       参考解决方案:

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

...

没有匹配的身份验证协议,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=

...

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

替换路径:

Image Removed

4、若更换驱动后还是不成功,请尝试以下的方案

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

数据库未修改之前:

在sqlnet.ora中:

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

数据库修改之后:

...

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包—V9及以上版本

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