ORA-28040和ORA-01017 的解决方法

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

ORA-28040: No matching authentication protocol

ORA-01017: invalid username/password; logon denied

 

一、ORA-28040报错解析:

按照官方说法在服务端sqlnet.ora下需要添加如下参数。

SQLNET.ALLOWED_LOGON_VERSION_CLIENT

SQLNET.ALLOWED_LOGON_VERSION_SERVE

注意:参数和等号之间不要有空格,否则有可能参数不生效。

ORA-28040和ORA-01017 的解决方法_第1张图片

解决方案:处理ORA-28040错误

1.使用更高版本的客户端。

2.需改数据库配置

目录:

[oracle@host02 admin]$ pwd

/u01/app/oracle/product/18.3.0/dbhome_1/network/admin

将 SQLNET.ALLOWED_LOGON_VERSION 设置为8

SQLNET.ALLOWED_LOGON_VERSION=8

 

[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

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

修改后使用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

 

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

二、ORA-01017错误解析

ORA-01017错误

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

ORA-28040和ORA-01017 的解决方法_第2张图片

解决方案:

使用alter修改密码

alter user 用户名 identified by new_password replace old_password;

 

你可能感兴趣的:(数据库)