概述
当数据库升级到12c后,有些功能的改变可能影响到原应用的可用性,如数据库升级12c后原来的10G或更老的客户端或10g或更老的JDBC 驱动连接数据库时失败,因为安全认证协议不符合,导致ORA-28040错误的发生,提示下面的错误信息:
- ORA-28040: No matching authentication protocol error
- ORA-03134: Connections to this server version are no longer supported
报错截图:
![64e93d5e0a65dd8c395fbe3e338e6d58.png](https://i-blog.csdnimg.cn/blog_migrate/31841d5774752d65c6efdf0166555a48.jpeg)
思路:
ORACLE 12C R2中默认的认证协议是12, 即便是sqlnet.ora文件不存在默认值同样生效,12是一种区分大小写密码的认证,是一种新的认证协议,解决办法是创建或在现有的sqlnet.ora文件中增加参数sqlnet.allowed_logon_version_server,在12c以前的版本中解决方法同样也是在sqlnet.ora文件增加参数SQLNET.ALLOWED_LOGON_VERSION, 该参数在12c中以被sqlnet.allowed_logon_version_server 和sqlnet.allowed_logon_version_client替代, 如果在12c中配置了SQLNET.ALLOWED_LOGON_VERSION,会在DB ALERT 中出现“Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter”提示。
数据库的认证协议并不是数据库软件的版本, 对应的是dba_users.password_versions的值
使用下面的sql确认:
SELECT USERNAME, PASSWORD_VERSIONS FROM DBA_USERS ORDER BY 1;
![11b0c77401cdf7fce1c79686aba5fb62.png](https://i-blog.csdnimg.cn/blog_migrate/f609829150e2b8e80309b66dab9de17d.jpeg)
在11g中的密码版本10g和11g组合, 12c中密码版本是11g, 12c的组合,如果想使用10g的密码版本登录12.2数据库需要修改sqlnet.allowed_logon_version_server 到11或更低的值。sqlnet.allowed_logon_version_server 和sqlnet.allowed_logon_version_client配置的值是最小认证版本的值,如数据库是12c, sqlnet.allowed_logon_version_server=10, 那10g,11g,12c的client都可以访问,包含10g对应的JDBC驱动包。 sqlnet.allowed_logon_version_server是配置在数据库服务器(被访问端)的DB $ORACLE_HOME的sqlnet.ora(不是GI HOME),在12.2版本有效值应该是8,9,10,11,12,12A,当ALLOWED_LOGON_VERSION_SERVER的值设为12时,只有已经应用了关键补丁更新CPUOct2012或更高版本的客户端,或者具有等同更新的11.2.0.3客户端版本才能连接到服务器。
解决办法:
前置条件:已安装Oracle11g客户端,配置好环境变量,用PL/SQL Developer登录数据库
1、在oracle 12C服务器端$oracle_home/network/admin目录下 新建文件sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
![af0d4487eecaccd56571ffd72481db6b.png](https://i-blog.csdnimg.cn/blog_migrate/b62ae783a3d9e39ce4aff50fa4c5cbe3.jpeg)
2、在服务器端,管理员身份登录,修改密码
sqlplus / as sysdba alter session set container=服务名; alter user 服务名 identified by 密码;
注意:配置完服务器端的sqlnet.ora文件后,务必要重新修改密码,否则仍登录失败
![e01decec9556be833bb35ae4daa08814.png](https://i-blog.csdnimg.cn/blog_migrate/e282b49e4e5086cfd8e48645958f8ed6.jpeg)
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
![b844cb1faec10b6fa64835f32fbf5506.gif](https://i-blog.csdnimg.cn/blog_migrate/cc8647446ff5703f3ad613822b73c956.gif)