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

Oracle DB

Oracle Server 12c에 낮은 버전의 인증 프로토콜을 사용하는 Oracle Client 11g에서 접속하려고 할 경우 발생합니다.

오류 발생 조건

Oracle Server 12c 컴퓨터에 있는 sqlnet.ora내용에 SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 가 없다면 Oracle Client 11g 컴퓨터에서 sqlplus접속에서 ORA-28040오류가 발생합니다.

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

해결 방법

Oracle Server 12c의 sqlnet.ora수정하기

Oracle Server 12c 컴퓨터에 있는 sqlnet.ora 내용을 다음과 같이 수정합니다.

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11

Oracle Client 11g에서 접속 확인하기

Oracle Client 11g에서 다음과 같이 접속했을때 ORA-28040오류는 해결 했지만 새롭게 ORA-01017: 사용자명/비밀번호가 부적합 오류가 발생했음을 확인할 수 있습니다.

C:\U>sqlplus scott/tiger@192.168.220.145/orcl
SQL*Plus: Release 11.2.0.1.0 Production on 수 12월 8 00:42:17 2021
Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-01017: 사용자명/비밀번호가 부적합, 로그온할 수 없습니다.

Oracle Server 12c PASSWORD_VERSIONS 수정하기

유저 scott에 대해서 다음과 같이 현재 PASSWORD_VERSIONS ‘11G 12C’ 의 내용을 ‘ 10G 11G 12C‘로 변경합니다. 방법은 다음과 같이 SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 가 설정된 상태에서 alter user ~을 실행해서 패스워드를 재설정하면 자동으로 변경됩니다.

현재 PASSWORD_VERSIONS 값을 확인

C:\>sqlplus / as sysdba
SQL>SELECT USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS FROM DBA_USERS WHERE USERNAME='SCOTT';
USERNAME  ACCOUNT_STATUS  PASSWORD_VERSIONS
--------  --------------  -----------------
SCOTT     OPEN            11G 12C

패스워드 재설정

SQL> alter user scott identified by tiger account unlock;
사용자가 변경되었습니다.

변경된 PASSWORD_VERSIONS 값을 확인


SQL> SELECT USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS FROM DBA_USERS WHERE USERNAME='SCOTT';
USERNAME  ACCOUNT_STATUS  PASSWORD_VERSIONS
--------  --------------  -----------------
SCOTT     OPEN            10G 11G 12C

제목과 URL을 복사했습니다