ORACLE 低版本客户端登录Oracle 12c监听报错之ORA-28040
来源:互联网 发布:java string转int 编辑:程序博客网 时间:2024/06/05 18:26
今天,测试要求远程登录oracle 12c数据库,但是他本地安装的连接客户端工具版本比较低,他本地安装的oracle数据库是11.2.0.1
要远程登录的数据库是12.2.0.1,通过tns远程登录时报错:ORA-28040
开始时使用tnsping测试TNS连接名ora12c时报错TNS-03505名字无法解析,原因是他本地安装有Oracle的廋客户端工具,tns配置是
在廋客户端配置的而不是oracle_home\network\admin下,这里需要特别说明一下,tnsping是oracle软件自带的工具,它默认使用的oracle_home\
network\admin下的tnsnames.ora文件,测试是( C:\oracle\product\11.2.0\dbhome_1\network\admin),于是将配置添加到oracle_home\network
\admin下,tnsping能够正常通过了:
C:\Users\localadmin>tnsping ora12c
TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 13-6月 -2017 13:47:00
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
C:\oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.117.130.29)(PORT = 1522))) (CONN
ECT_DATA = (SERVICE_NAME = ora12c)))
OK (0 毫秒)
C:\Users\localadmin>
但是,使用tns远程登录时无法登录,登录报错:ORA-28040
C:\Users\localadmin>sqlplus bmi14/bmi14@ora12c
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 6月 13 11:54:29 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-28040: No matching authentication protocol
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
C:\Users\localadmin>
看网上说,这是低版本客户端向高版本服务器发起连接,需要配置sqlnet.ora,添加参数:SQLNET.ALLOWED_LOGON_VERSION=8
这里需要声明的是sqlnet.ora配置是在服务器端而不是客户端:
[ora12c@ora29 admin]$ lsnrctl status
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 13-JUN-2017 13:51:21
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora29)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 12-JUN-2017 11:28:58
Uptime 1 days 2 hr. 22 min. 22 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u03/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File /u03/app/diag/tnslsnr/ora29/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora29)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
Services Summary...
Service "ora12c" has 1 instance(s).
Instance "ora12c", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[ora12c@ora29 admin]$ pwd
/u03/app/oracle/product/12.2.0/db_1/network/admin
[ora12c@ora29 admin]$ cat sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION=8
[ora12c@ora29 admin]$
sqlnet.ora配置完成后不需要重新启动Oracle服务或监听程序。
然后,在测试端再次使用TNS远程登录,发现还是报错:ORA-01017
C:\Users\localadmin>sqlplus bmi14/bmi14@ora12c
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 6月 13 13:16:53 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
C:\Users\localadmin>
很奇怪的是,我在12c数据库新建用户zhul,同样在测试登录却可以登录:
C:\Users\localadmin>sqlplus zhul/zhulei@ora12c
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 6月 13 13:18:57 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> quit
从 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 断开
C:\Users\localadmin>
好奇之下,让其他同事使用相同的tns登录bmi14却可以,唯一不同的是同事本地安装的oracle数据库是11.2.0.3的数据库。
加上sqlnet.ora与之前创建的用户的密码版本参数发现,新建的用户有10G而之前创建的用户没有,新用户登录需要sqlnet.ora
不过jdbc测试bmi14不受sqlnet.ora限制,删除sqlnet.ora文件,jdbc程序使用jdk1.8、jdk1.7和ojdbc8.jar能连接数据库。
- ORACLE 低版本客户端登录Oracle 12c监听报错之ORA-28040
- oracle登录报ORA-12541:无监听程序 ! 错误
- oracle 客户端报错 ORA-12514
- 安装两次ORACLE客户端,PL-SQL登录报错 ORA-12154
- Oracle 客户端配置监听(TNSNames.ora设置)
- 从windows客户端sqlplus连接Oracle 12c PDB报错ORA-65162: The password has expired
- oracle报错1-12C-ora-00600-[kpp_concatq:2]
- oracle 11g 使用一段时间监听还在客户端连接不上,报ORA-12537
- PLsql登录oracle数据 报 “ora-12541:TNS:无监听程序”错误
- PL/sql developer登录oracle数据 报 “ora-12541:TNS:无监听程序”错误
- Oracle 12c:ORA-28040 & ORA-01017
- oracle 12C ORA-28040
- Oracle client 11.2/12连接服务器12c报错ORA-28040问题解决方法
- ORACLE startup报错之ORA-01154&&ORA-01155&&ORA-01033&&ORA-03113
- ORACLE startup报错之ORA-01261&&ORA-01263&&ORA-00202&&ORA-00205
- Oracle 客户端 version 8.1.7 或更高版本报错
- oracle报错ora-01830
- win7 登录本地oracle报错:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服
- IE8下$.ajax跨域返回textStatus为“No transport”
- 问题8--更改win7 & Linuxmint双系统安装后更改默认启动顺序
- 主成分分析法:简介
- Java多线程开发系列之四:玩转多线程(线程的控制2)
- insmod出现loading out-of-tree module taints kernel
- ORACLE 低版本客户端登录Oracle 12c监听报错之ORA-28040
- Maven学习 (六) 搭建多模块企业级项目
- 市值登顶亚洲后_马云对话全球投资者:与未来相比阿里还是个baby
- Centos6.5挂载新硬盘
- Q113:PBRT-V3分别在Linux和Mac下的编译与调试(汇总)
- Python pickle 模块用法
- 多种方式获取文件夹里的文件名称
- try-catch-finally 规则( 异常处理语句的语法规则 )
- angluarjs flask 前后台数据交互传递 异步请求