EAS 部署在高版本数据库上BOS调试ORA-28040 错误
ORA-28040: No matching authentication protocol
原因是目前BOS对应的数据库连接工具类版本过低,需要修改数据库策略来匹配
我们遇到的问题是测试环境部署的Oracle 11g 版本,云端环境为Oracle 19c,然后使用BOS开发工具连接不上,无法调试。
一、ORA-28040: No matching authentication protocol解决方案
1.非云服务厂商RDS
在服务端/u01/app/oracle/product/18.3.0/dbhome_1/network/adminsqlnet.ora修改参数(对应自己的Oracle路径就可以了)
Oracle 12c 之前版本:
修改或添加参数(存在就修改,不存在就添加)
SQLNET.ALLOWED_LOGON_VERSION=8
Oracle 12c 开始后的版本:
修改或添加参数(存在就修改,不存在就添加)
--客户端连接到服务器的时候启作用
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
--做为客户端去连接其它数据库的时候启作用
SQLNET.ALLOWED_LOGON_VERSION_SERVE=8
然后reload监听,无需重启数据库
参考命令:
[oracle@host02 admin]$ pwd
/u01/app/oracle/product/18.3.0/dbhome_1/network/admin
[oracle@host02 admin]$ more sqlnet.ora
#SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
#SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVE=10
修改后使用reload 监听
[oracle@host02 admin]$ lsnrctl
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 13-FEB-2019 15:56:45
Copyright (c) 1991, 2018, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> reload
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
The command completed successfull
2.云服务厂商RDS(以亚马逊云为例)
可直接在控制台修改对应参数值,无需做其他操作
以上修改完成后,可以试试BOS开发工具是否可以连接调试,如若不行,继续往下看
二、ORA-01017错误
如果不行应该就是出现这个错误了
从错误提示看是用户名或者密码错误,其实用户名和密码没有问题。 这里的问题是我们配置的sqlnet对之前已经存在的帐号并没有生效,他们还保持在之前的兼容性。
oracle密码版本写入的时候使用的时11g和12c配置的规则,导致正确密码也无法通过验证。
在sqlnet.ora文件新增了参数后密码虽然支持n(8)以上版本,但是此时由于密码规则事先写入,导致低版本客户端无法识别。
此时只需要alter user_name identified by passwd ;修改一遍即可了。
为了不影响正在运行的业务,一般就是把原来的用户名和密码执行一次,实际密码没有变,但是Oracle本身会重新匹配当前修改后的策略。
至此,解决完成此类问题。
EAS 部署在高版本数据库上BOS调试ORA-28040 错误
本文2024-09-16 22:17:00发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-47132.html