728x90
반응형
728x90
반응형

 

ORA-28040: No matching authentication protocol

ORA-28040: 일치하는 인증 프로토콜 없음

 

프로젝트 셋팅중 위와 같은 오류가 발생하였는데요.

1. 오류 상세

java.sql.SQLException: SQLException in StandardPoolDataSource:getConnection exception: 
java.sql.SQLException: SQLException in StandardPoolDataSource:getConnection no connection available 
java.sql.SQLException: Cannot get connection for URL jdbc:oracle:thin:@192.168.1.xx:1521:orcl : ORA-28040: No matching authentication protocol

2. 원인

오라클 12c 서버와 클라이언트의 버전차이라고 하네요.

저같은 경우 오라클 11g에서 12c로 업그레이드 한 경우에 발생하였습니다.

 

3. 해결방법

1) jdbc.jar 파일 수정

 : ojdbc14.jar 파일을 jdk 버전에 맞게 ojdbc5~8로 수정하여 서비스 시작.

 

2) SQLNET.ORA 파일 수정

 가. SQLNET.ORA 위치로 이동

  - \app\계정\product\12.1.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora

 나. 텍스트 추가

  - SQLNET.ALLOWED_LOGON_VERSION_SERVER=9
  - SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9

 다. 리스너 재시작

위 방법에도 저는 해결이 안되어 문제를 찾아보니 프로젝트 lib폴더에 ojdbc14.jar 파일이 있었네요...

 

728x90
반응형
728x90
반응형

오라클에서 원격 접속 차단하는 방법에 대해 알아보겠습니다.

접속하는 피시에서 서버의 Listener를 통해 DB를 접속하는 경우가 있습니다.

제한을 두지 않는다면 모든 사용자가 접속을 할 수 있습니다.( DB접속 정보를 알고있다는 가정하에)

Listener 설정을 통해 차단 및 허용 IP 설정이 가능합니다.

sqlnet.ora파일을 수정해주시면 되는데요.

sqlnet.ora파일은 $ORACLE_HOME/network/admin/sqlnet.ora

오라클 설치경로 $ORACLE_HOME 디렉토리 하단에 존재합니다.

$ORACLE_HOME 오라클 설치 시 환경변수로 설정해두셨을 거라고 생각되는데요.

저는 D드라이브 밑에 오라클을 설치해두었습니다.

sqlnet.ora 파일을 찾으셨다면 에디터 프로그램으로 sqlnet.ora파일을 편집합니다.

 

TCP.VALIDNODE_CHECKING=YES
TCP.INVITED_NODES= (접속 허용 IP )
TCP.EXCLUDED_NODES= (접속 차단 IP)

 

편집후에는 listener를 재시작해줘야 해당 설정이 반영됩니다.

작업관리자 -> Listener 재시작

실제로 적용 되는지 테스트를 해보았습니다.

1. 접속 허용 IP만 지정 (TCP.INVITED_NODES)

접속 허용 IP를 지정한 경우 해당 IP외 모든 IP는 접속이 제한됩니다.

2. 접속 차단 IP지정(TCP.EXCLUDED_NODES)

 2.1) 차단IP외 다른 IP에서 접속한 경우

 2.2) 차단IP에서 접속한 경우

차단 IP에서 접속한 경우에도 동일한 에러 메세지가 발생하네요.

3. Listner 종료 시 발생한 에러

ORA-12505, TNS: listener does not currently know of SID given in connect descriptor

메세지와 함께 DB접속이 되지 않네요.

 

추가로 여러 개 IP를 넣고 싶다면 쉼표(,)를 통해 구분하여 작성할 수 있습니다.

 

728x90
반응형
728x90
반응형

+ Recent posts