oracle 12c 低版本,ORACLE 低版本客戶端登錄Oracle 12c監聽報錯之ORA-28040

今天,測試要求遠程登錄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的數據庫。

39b1068dc2f93f6bf3e03bf5baedfd6c.png

加上sqlnet.ora與之前創建的用戶的密碼版本參數發現,新建的用戶有10G而之前創建的用戶沒有,新用戶登錄需要sqlnet.ora

不過jdbc測試bmi14不受sqlnet.ora限制,刪除sqlnet.ora文件,jdbc程序使用jdk1.8、jdk1.7和ojdbc8.jar能連接數據庫。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值