UNIX/EXADATA

[나+스크랩] ORA-28040 (12c에서 에러)

99iberty 2015. 11. 23. 14:00

 

 

Problem Summary
---------------------------------------------------
오라클 12C 내부 솔루션 모니터링 관련 오류 문의

Problem Description
---------------------------------------------------
내부툴로 12c 오라클 모니터링이 처음이라 이슈가 있습니다.
모니터링을 추가하려고 하면 아래와 같이 메세지가 발생하며 discovery에 실패합니다.
ORA-28040: No matching authentication protocol exception
위 메세지 확인 결과 파라미터를 수정하라고 하는데, 다음과 같이 궁금한 점 정리하였습니다.

Q1. SQLNET 파라미터값
sqlnet.ora 파일의 SQLNET.ALLOWED_LOGON_VERSION 값을 수정하라고 하는데
8,9 중 어떤 값을 넣어야 할지는 잘 확신이 서지 않습니다.
현재 모니터링 서버는 ojdbc14.jar 를 사용하고 있습니다.
또한 해당값 수정 후 리스너 재시작이 필요한지요, 아니면 바로 적용되는지요?


Q2. sqlnet.ora 파일경로
단순히 $GI_HOME/network/admin/sqlnet.ora 파일을 수정하면 되는지요?
예전에 listener.ora 파일은 . oraenv 로 접속 후 명령어를 통해서 수정했던 것 같은데,
sqlnet.ora 도 그렇게 수정해야 하는지요? 아니면 바로 파일을 직접 수정해도 변경이 되는지요?

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

[답변]

+ SQLNET 파라미터값, $GI_HOME/network/admin/sqlnet.ora 파일을 수정하는 것이며,
다음과 같습니다.


SQLNET.ALLOWED_LOGON_VERSION parameter 를 통해 Oracle Database 에 연결할때 사용되는 minimum authentication protocol 을 설정할 수 있습니다.

예를 들어, Parameter 값을 8로 설정하면 Oracle8i authentication protocol 를 사용하기 때문에 Client 8 버전 혹은 그 이상 버전에서 해당 Database 에 접속할 수 있습니다.
반면 12로 설정하면 12C password version 을 사용하기 때문에 Database 12c client 만 연결할 수 있습니다.

그러나 SQLNET.ALLOWED_LOGON_VERSION parameter 는 12c 버전에서 더 이상 사용되지 않으며(deprecated) 아래 2개 parameter 로 대체 되었습니다.

SQLNET.ALLOWED_LOGON_VERSION_SERVER
SQLNET.ALLOWED_LOGON_VERSION_CLIENT


++ https://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF2010
++ https://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF2016


위의 언급하여 드린 내용에 따라 Oracle 8 version 과의 호환성을 유지하기 위해 8 로 설정하실 예정이면
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8 로 설정하시고 monitoring 해보시기 바랍니다.


02). 해당 SQLNET.ORA 를 직접 수정하여도 무방함.

 

01). 다시 확인하여 보니, Database side 의 sqlnet.ora 에

QLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

로 변경하시고, database 의 listener 를 restart 하시기 바랍니다.


02) 또는 Monitoring 쪽에 ojdbc14.jar 를 upgrade 하실 수 있다면, JDBC is replaced with 11.2.0 (file ojdbc5.jar)
로 replace 하시고 test 를 하여 보시기 바랍니다.

 

 

 

 

 

 

 

 

 

 

 

 

http://ethernet0.tistory.com/168

http://ethernet0.tistory.com/155

 

ORA-28040: No matching authentication protocol


■ 원인 : Oracle Server와 Client 버전 차이 (Oracle 12c 부터 발생)

원인 : SQLNET.ALLOWED_LOGON_VERSION 파라미터의 디폴트 값이 11로 변경됨

■ 조치 : SQLNET.ORA 파일 수정

예전 디폴트값으로 변경

서버의 SQLNET.ORA 파일에 아래 구문 추가

SQLNET.ALLOWED_LOGON_VERSION = 9 , 8 수정

(9,8의 차이를 모르겠음)

 

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

 

http://m.blog.naver.com/javaking75/140205097321

 

오류 : Client Message : ORA-28040 : No matching authentication protocol

원인 : Oracle Server와 Client 버전 차이(Oracle 12c부터 발생)

조치 : SQLNET.ORA 파일 수정

서버의 SQLNET.ORA파일을 열어 아래 문장 추가

         => SQLNET.ALLOWED_LOGON_VERSION = 9


수정후 서버 재시작.

 

 

위치 : 서버 $ORACLE_HOME/network/admin/sqlnet.ora

설명 : 접속 방식을 저장해 놓은 서버 설정파일 

 

 

[참고] 

ojdbc14.jar를 사용했을 경우 발생.

ojdbc6.jar 또는 ojdbc7.jar로 변경하니 해결

-> 현재 딱 맥시전트의 ojdbc 버전이 ojdbc14.jar 다!! 헉!!!!

 

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

http://stackoverflow.com/questions/24100117/ora-28040-no-matching-authentication-protocol-exception

 

ORA-28040: No matching authentication protocol exception

I am trying to connect my grails project to Oracle databse(Oracle 12c) in windows(8) system. However, whenever i run my application i get following exception :

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol

)

Caused by: java.sql.SQLException: ORA-28040: No matching authentication protocol

According to internet suggestion i also tried editing my *.ora file but it is not working.

I added following snippet in sqlnet.ora file :

SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

Here i tried assigning (10,11,12) but neither of them is working.

Can anyone please help me with this ?

share|improve this question
    
Which sqlnet.ora did you edit, the one on the client or the server? – Jon Heller Jun 8 '14 at 5:00
    
I am not sure as i am novice to it. However, the file i edited just contained few line. It Contained : '# sqlnet.ora Network Configuration File: E:\app\adhikariaman01\product\12.1.0\dbhome_1\network\admin\sqlnet.ora # Generated by Oracle configuration tools. # This file is actually generated by netca. But if customers choose to # install "Software only", this file wont exist and without the native # authentication, they will not be able to connect to the database on NT. SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)' – Aman Adhikari Jun 8 '14 at 14:47
2  
That sounds like the file for the database server. These problems can be really difficult. Can you connect to the database server using SQL*Plus? Are you using a JDBC thin client, and if so can you try a thick client? – Jon Heller Jun 9 '14 at 2:13
    
Yes, i am connected via SQL*plus – Aman Adhikari Jun 11 '14 at 9:31
    
I solved the issue :). I deleted the ojdbc14.jar file and used ojdbc6.jar instead and it worked for me. Anyway thanks for answering. – Aman Adhikari Jun 11 '14 at 9:33

2 Answers 2

up vote 26 down vote accepted

I deleted the ojdbc14.jar file and used ojdbc6.jar instead and it worked for me

share|improve this answer
1  
Works like a charm! – Abu Sulaiman Mar 17 at 15:47
    
experience same issue while trying to connect Oracle 12c from pentaho kettle. removed ojdbc14.jar and its perfectly working! – lourdh May 22 at 8:48
    
Same error when Connecting Cognos 10.2.1 fp7 to Oracle 12c content store database. Removed ojdbc14.jar from '[10 bi install folder]\webapps\p2pd\WEB-INF\lib' and added ojdbc6.jar, works great. – Damienknight Jul 7 at 14:47

Here is some text I found at experts-exchange:

Bug 14575666

In 12.1, the default value for the SQLNET.ALLOWED_LOGON_VERSION parameter has been updated to 11. This means that database clients using pre-11g JDBC thin drivers cannot authenticate to 12.1 database servers unless theSQLNET.ALLOWED_LOGON_VERSION parameter is set to the old default of 8.

This will cause a 10.2.0.5 Oracle RAC database creation using DBCA to fail with the ORA-28040: No matching authentication protocol error in 12.1 Oracle ASM and Oracle Grid Infrastructure environments.

Workaround: Set SQLNET.ALLOWED_LOGON_VERSION=8 in the oracle/network/admin/sqlnet.ora file.

share|improve this answer
    
Please add your sources. – Fred Oct 29 '14 at 12:22
    
It came from here, but you have to pay to see the answer: experts-exchange.com/Database/Oracle/Q_28387999.html – Lawson Sep 3 at 21:14

 

 

 

 

'UNIX > EXADATA' 카테고리의 다른 글

dnfs 설정  (0) 2015.09.22
NTP 수정할 때 추가로 확인할 부분  (0) 2015.09.22
오라클 리눅스 버전 확인  (0) 2015.06.30