为何Oracle Database 12R2输入正确的用户名密码口令验证依然不能通过?

随着Oracle数据库版本的持续发布,大部分企业逐渐在生产环境使用12cR2(12.2.0.1,18c-12.2.0.2)。

为何Oracle Database 12R2输入正确的用户名密码口令验证依然不能通过?_第1张图片

数据库迁移或升级后,开发人员和运维遇到最常见的问题之一就是,使用Oracle 10g或11g早期版本的客户端无法正常连接12.2,使用Oracle 10g或11g早期版本的客户端的第三方工具和应用服务器(WAS,Weblogic)也无法正常连接12.2,Oracle SQL Developer可以正常连接,因为Oracle SQL Developer不依赖这些Oracle客户端。

为何Oracle Database 12R2输入正确的用户名密码口令验证依然不能通过?_第2张图片

 

使用Oracle 10g及11.2之前版本的Oracle客户端使用sqlplus命令行,依赖于这些客户端的第三方工具(plsql developer,toad)等连接Oracle12.2常见的报错:

ORA-28040: No matching authentication protocol

ORA-01017: invalid username/password

  为何Oracle Database 12R2输入正确的用户名密码口令验证依然不能通过?_第3张图片


根据MOS给出的建议在$ORACLE_HOME/network/admin/ sqlnet.ora 文件中增加一下2行

SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10

12.2 中S QLNET.ALLOWED_LOGON_VERSION_SERVER 默认是12

 

修改sqlnet.ora文件后,ORA-28040报错没有了。ORA-01017报错依然存在。

[oracle@db12c ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 12.2.0.1.0 Production on Thu Feb 21 10:40:55 2019

 

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL> col username for a20

SQL> col PASSWORD_VERSIONS for a10

SQL> set lines 200 pages 200

SQL> select username,password_versions from cdb_users;

USERNAME                 PASSWORD_VERSIONS

---------------------------------------- --------------------

SYS                      11G 12C

SYSTEM                   11G 12C

XS$NULL

DBSNMP                   11G 12C

APPQOSSYS                11G 12C

GSMCATUSER               11G 12C

MDDATA                   11G 12C

SYSBACKUP                11G 12C

REMOTE_SCHEDULER_AGENT

DBSFWUSER                11G 12C

GSMUSER                  11G 12C

GGSYS                    11G 12C

ANONYMOUS

SYSRAC                   11G 12C

CTXSYS                   11G 12C

OJVMSYS                  11G 12C

SI_INFORMTN_SCHEMA           11G 12C

DVSYS

DVF

AUDSYS                   11G 12C

GSMADMIN_INTERNAL            11G 12C

DIP                      11G 12C

ORDPLUGINS               11G 12C

MDSYS                    11G 12C

OLAPSYS                  11G 12C

LBACSYS                  11G 12C

SYSKM                    11G 12C

ORDDATA                  11G 12C

OUTLN                    11G 12C

ORACLE_OCM               11G 12C

SYS$UMF                  11G 12C

XDB                      11G 12C

SYSDG                    11G 12C

WMSYS                    11G 12C

ORDSYS                   11G 12C

SPATIAL_CSW_ADMIN_USR            11G 12C

SYS                      11G 12C

SYSTEM                   11G 12C

XS$NULL                  11G

DBSNMP                   11G 12C

APPQOSSYS                11G 12C

GSMCATUSER               11G 12C

MDDATA                   11G 12C

SYSBACKUP                11G 12C

REMOTE_SCHEDULER_AGENT

DBSFWUSER                11G 12C

GSMUSER                  11G 12C

GGSYS                    11G 12C

ANONYMOUS

SYSRAC                   11G 12C

HR                       11G 12C

CTXSYS                   11G 12C

BI                       11G 12C

OJVMSYS                  11G 12C

SI_INFORMTN_SCHEMA       11G 12C

DVSYS                    11G

DVF                    11G

AUDSYS                   11G 12C

GSMADMIN_INTERNAL            11G 12C

DIP                  11G 12C

ORDPLUGINS               11G 12C

OE                   11G 12C

PM                   11G 12C

MDSYS                    11G 12C

OLAPSYS                  11G 12C

LBACSYS                  11G 12C

SYSKM                    11G 12C

ORDDATA                  11G 12C

OUTLN                    11G 12C

ORACLE_OCM               11G 12C

SYS$UMF                  11G 12C

PDBHRADMIN               11G 12C

XDB                  11G 12C

IX                   11G 12C

SYSDG                    11G 12C

WMSYS                    11G 12C

ORDSYS                   11G 12C

SPATIAL_CSW_ADMIN_USR            11G 12C

SH                   11G 12C

 

79 rows selected.

 

在12.2数据库服务端使用alter user再修改一次密码,10g及11.2以前客户端可以正常连接12.2

 

SQL> alter user username identified by password ;

 

User altered.

 

另外,建议生产进行升级时应用程序和Oralce客户端也应该同时升级。

  为何Oracle Database 12R2输入正确的用户名密码口令验证依然不能通过?_第4张图片

为何Oracle Database 12R2输入正确的用户名密码口令验证依然不能通过?_第5张图片

从上图可以看出,12.2支持11.2以上的客户端。


 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28373936/viewspace-2636543/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28373936/viewspace-2636543/

你可能感兴趣的:(为何Oracle Database 12R2输入正确的用户名密码口令验证依然不能通过?)