重庆思庄Oracle、Redhat认证学习论坛

标题: ORA-28040和ORA-01017 的解决方法 [打印本页]

作者: jiawang    时间: 2020-4-8 17:28
标题: ORA-28040和ORA-01017 的解决方法
本帖最后由 jiawang 于 2020-4-30 17:06 编辑

在安装Oracle 19c数据库之后,客户端目前一般还是停留在10G、11G,如果客户端工具的版本是toad、plsql在连接12c、19c就会报如下两个错误:

ORA-28040: No matching authentication protocol
ORA-01017: invalid username/password; logon denied

解决办法:
1、使用12C及其12C以上的客户端;
2、需要更改数据库配置
在Oracle用户(不是grid用户)下,将$ORACLE_HOME/network/admin/sqlnet.ora文件下增加:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

这里第一个参数是客户端连接到服务器的时候启作用,第二个是做为客户端去连接其它数据库的时候启作用。


修改后使用reload 监听
LSNRCTL> reload
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=YCYYTEST)(PORT=1521)))
命令执行成功
LSNRCTL>

验证:
select username,ACCOUNT_STATUS, PASSWORD_VERSIONS from dba_users where account_status='OPEN';


至此 ORA-28040 错误已解决,如果不出意外马上会报  ORA-01017错误

2、ORA-01017错误
从错误提示看是用户名或者密码错误,其实用户名和密码没有问题。 这里的问题是我们配置的sqlnet对之前已经存在的帐号并没有生效,他们还保持在之前的兼容性。