개요
11g 클라이언트에서 oracle 12c 서버로 접근할 때 해당 에러가 발생하며 접속이 불가능 합니다.
에러내용
ORA-28040 : No Matching Authentication Protocol
ORA-01017 : in invalid username/password
에러발생원인
oracle11g 에서는 SHA-1 기반의 패스워드 알고리즘 사용하며, oracle12c 이후 부터는 SHA-512 기반의 패스워드 알고리즘 이 사용됩니다.
패스워드 암호화 규칙이 12c를 기준으로 달라지므로 11g,12c 두개를 기준으로 봤을때 동일한 패스워드를 입력하여도,
*단방향 암호화로 변환시 다른 패스워드로 인식되어 접속이 불가능하여 에러가 발생됩니다.
* 단방향 암호화 : 일방적으로 암호화만 가능 <> 양방향 암호화 : 암호화와 복호화 둘다 가능
해결
$ORACLE_HOME/network/admin/sqlnet.ora 파일에 아래 내용을 추가하여 암호 인증 방식을 추가해 주시면 됩니다.
(sqlnet.ora 파일이 없으면 해당 이름으로 파일을 만들어 내용 추가해주시면 됩니다.)
뒤의 n 값에는 아래 내용을 참조하여 입력하시면 됩니다.
12a : oracle12c 이후의 버전 통신규칙
12 : 2012년10월 이후 CPU 패치를 진행한 oracle11g 통신규칙(권장사항)
11 : oracle11g 통신규칙(기본)
10 : oracle10g 통신규칙
8 : oracle8i 통신규칙
추가 이후 db서버의 리스너를 재기동 해주시면됩니다.
$ lsnrctl reload
보통 oracle10g client를 사용하는 경우에 문제가 발생하여, 위 문제가 발생시 10으로 지정해주면 됩니다.
추가사항
위 방식으로도 사용이 가능하지만 오라클에서 권장되는 방식은 클라이언트 버전 올려서 사용하면 문제가 발생하지 않습니다.
참조
ORA-28040: No Matching Authentication Protocol and ORA-01017: invalid username/password (문서 ID 2436794.1)
The new Exclusive Mode default for password-based authentication in Oracle 12.2 conflicts with case-insensitive password configurations. All user login fails with ORA-1017 after upgrade to 12.2 (문서 ID 2075401.1)
댓글