博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
12.2: ORA-28040 Followed by ORA-1017 When Client is Under Version 12
阅读量:4070 次
发布时间:2019-05-25

本文共 2928 字,大约阅读时间需要 9 分钟。

Applies to:

Oracle Net Services - Version 12.2.0.1 and later
Information in this document applies to any platform.

Symptoms

Following a recent database upgrade to 12.2, an 11gR2 client might suddenly start to fail to connect to the database with an error ORA-28040.

This is a common problem with 12c and newer instances.  In this case, the ORA-28040 is easily resolved with the server side

sqlnet.ora file setting for SQLNET.ALLOWED_LOGON_VERSION_SERVER=10 or 11.
It's important to note that the default setting for this parameter at the 12.2 server has been changed from 11 in version 12.1.
The default in version 12.2 is now '12'.  So a client that might have been able to connect to 12.1 may start to fail after an
upgrade to 12.2.

 

However, once the ORA-28040 error is cleared, the client still cannot connect and a persistent ORA-1017 is returned.

This is despite full confidence in the credentials being supplied by the user.
ORA-28040: No matching authentication protocol

ORA-01017: invalid username/password

Changes

 This is likely a new installation of version 12.2 Oracle database.

Cause

ORA-28040 is thrown because the default setting for allowed logon version in 12.2 has been changed from 11 to 12.

(see above)
Note:  An 11.2.0.1 client is unable to use the algorithm for 12 or 11 so a lower setting (10) is necessary.
If the client is version 11.2.0.3 or higher, the server setting of 11 should work.  The setting of 12 will not.
In addition to this new value for ALLOWED LOGON, the 12.2 database no longer allows case insensitive passwords.

SQL>show parameter SEC_CASE_SENSITIVE_LOGON;

Should NOT be true in 12.2.

See also:

    Lockout of all database authenticated users getting error ORA-01017: invalid username/password; logon denied 
  
With this solution you will also need to change the user password again so the DBA_USERS.PASSWORD_VERSIONS will get a 10G value.
Note that the DES based verifiers are outdated and should only be used in exceptional cases when legacy client applications still need it.
 
See   The new Exclusive Mode default for password-based authentication in Oracle 12.2 conflicts with case-insensitive password configurations. All user login fails with ORA-1017 after upgrade to 12.2 
 

Solution

1) Set SQLNET.ALLOWED_LOGON_VERSION_SERVER at server side sqlnet.ora file to 10 for 11.2.0.1 client.

(11.2.0.3 client should be able to use a setting of 11)

The default location for the sqlnet.ora file that is referenced by the database is not GRID.  It's RDBMS_HOME/network/admin.

2) Make sure the CASE_SENSITIVE_PASSWORD parameter is set to TRUE (FALSE is no longer allowed in 12.2)

SQL> alter system set SEC_CASE_SENSITIVE_LOGON=true;

3) Change password for the user AFTER this setting is in place.  If userid/password was created PRIOR to this setting,
changing it again may be necessary as this setting impacts the algorithm.
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
(11 if client version is 11.2.0.3 or newer)

转载地址:http://sdhji.baihongyu.com/

你可能感兴趣的文章
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>
Redis持久化存储(AOF与RDB两种模式)
查看>>
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
redis sharding方案
查看>>
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式缓存负载均衡负载均衡的缓存处理:虚拟节点对一致性hash的改进
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>