问题现象

在使用DataEngineDI进行数据源连接配置时,当数据库为oracle 12c时,测试连接,报ORA-28040: No matching authentication protocol。

告警信息

ORA-28040: No matching authentication protocol

原因分析

Oracle 12c的参数SQLNET.ALLOWED_LOGON_VERSION默认等于11。当我们使用11g JDBC之前版本的thin驱动连接的时候,就会报错。

解决办法

1、打开$ORACLE_HOME/network/admin下sqlnet.ora,如果是新安装的RAC,默认sqlnet.ora文件 是不存在的自己创建一个即可。

添加两行:

SQLNET.ALLOWED_LOGON_VERSION_SERVER= 8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT= 8

2、此时如果测试连接会出现ORA-01017用户名密码不识别错误,这是由于密码规则事先写入,导致低版本客户端无法识别。

此时只需要alter user_name identified by passwd ;修改一遍即可了。

建议与总结

1、建议在DI操作手册中写明支持的数据库类型及具体版本,以及对于不完全支持的数据库版本给出配置调整修改方案。

案例信息

案例类型:经验案例
案例号:201801160004
创建时间:2018年1月16日
更新时间:2018年4月23日
发布时间:2018/4/23 17:21:11
文章密级:游客可见
有效期:长期有效
发布者:崔国栋 [c13978]
点击次数:937
评论平均得分:0
关键词:DI,ORACLE 12C,ORA-28040,ORA-01017
产品线:大数据
产品系列:
产品版本:
故障类型:

附件
常用操作
收藏