ORA-28040: 일치하는 인증 프로토콜 예외 없음
grails 프로젝트를 Windows(8) 시스템의 Oracle 데이터베이스(Oracle 12c)에 연결하려고 합니다.그러나 응용 프로그램을 실행할 때마다 다음과 같은 예외가 발생합니다.
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
인터넷 추천에 따르면 나도 내 파일을 편집해 봤지만 잘 되지 않는다.
파일에 다음 스니펫을 추가했습니다.
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
여기서 할당(10, 11, 12)을 시도했지만 둘 다 작동하지 않습니다.
누가 이것 좀 도와줄래?
ojdbc14.jar 파일을 삭제하고 대신 ojdbc6.jar를 사용했더니 작동했습니다.
다음은 experts-exchange에서 찾은 텍스트입니다.
버그 14575666
12.1에서는 SQLNET 기본값입니다.ALLOWED_LOGON_VERSION 파라미터가 11로 갱신되었습니다.즉, 11g 이전 JDBC 씬 드라이버를 사용하는 데이터베이스 클라이언트는 SQLNET이 아닌 한 12.1 데이터베이스 서버에 대해 인증할 수 없습니다.ALLOWED_LOGON_VERSION 파라미터는 오래된 기본값8로 설정되어 있습니다.
이로 인해 ORA-28040: No matched authentication protocol error in 12.1 Oracle ASM 및 Oracle Grid Infrastructure 환경에서 DBCA를 사용한10.2.0.5 Oracle RAC 데이터베이스 작성에 실패합니다.
회피책:SQLNET을 설정합니다.oracle/network/admin/sqlnet.ora 파일의 ALLOWED_LOGON_VERSION=8.
sqlnet.ora에 다음 추가 제외
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
"ORA-01017: invalid username/password; logon denied" 오류가 표시되면 비밀번호를 다시 만들어야 합니다.
ojdbc8.jar를 사용하여 이 문제를 해결했습니다.Oracle 12c는 ojdbc8.jar와 호환성이 있습니다.
나는 일식을 사용했는데 다른 모든 답을 시도해 본 결과 효과가 없었다.결국, 제게 효과가 있었던 것은ojdb7.jar
빌드 경로의 선두에 있습니다.이 문제는 여러 개의 항이 충돌하는 동일한 클래스를 가질 때 발생합니다.
- 프로젝트 선택
Project Explorer
- 오른쪽 클릭
Project -> Build Path -> Configure Build Path
- 에 가다
Order and Export
탭과 선택ojdbc.jar
- 클릭 버튼
TOP
위로 옮기다
매우 오래된 질문이지만 다른 사람에게 도움이 될 수 있는 추가 정보를 제공합니다.또한 동일한 오류가 발생하여 12.1.0.2 Oracle Database에서 ojdbc14.jar를 사용하고 있었습니다.Oracle 공식 웹 페이지에 이 정보는 어떤 버전이 어떤 데이터베이스 드라이버를 지원하는지 나와 있습니다.이 링크는 Oracle 12c 및 Java 7 또는 8에서 올바른 버전은 ojdbc7.jar인 것 같습니다.
ojdbc6.jar는 11.2.0.4용입니다.
sqlnet.ora에 다음 추가 제외
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
또한 클라이언트와 서버 모두에 다음 항목을 추가함으로써 문제가 해결되었습니다.
SQLNET.AUTHENTICATION_SERVICES = (NONE)
Post ORA-28040: No matched authentication protocol(인증 프로토콜 없음)도 참조하십시오.
추가 중
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
는 솔루션 sql.ora 디렉토리로 최적입니다.\product\12.1.0\dbhome_1\NETWORK\ADM입력
초기 오류: ORA-28040: 일치하는 인증 프로토콜 예외가 없습니다.
DB 버전은 12.2(Solaris), 클라이언트 버전은 11.2(Windows)입니다.sqlnet.ora 서버와 클라이언트 양쪽에 아래와 같이 추가하였습니다.
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
접속 중 사용자 이름과 비밀번호가 비활성화되어 비밀번호(같은 비밀번호)를 데이터베이스에 다시 작성했습니다.이것에 의해, 문제가 해결되었습니다.
대부분의 경우 ojdbc 드라이버 jar를 교체하는 것이 해결책이지만, 제 경우는 달랐습니다.
올바른 ojdbc 드라이버를 사용하고 있는 것이 확실한 경우.실제로 자신이 생각하는 데이터베이스에 접속하고 있는지 다시 확인합니다.이 예에서는 (Tomcat/conf에서) jdbc 구성이 다른 Oracle 버전을 가진 다른 데이터베이스를 가리키고 있었습니다.
ojdbc-full을 설치합니다.이것에는 12.1.0.1 릴리스가 포함되어 있습니다.
언급URL : https://stackoverflow.com/questions/24100117/ora-28040-no-matching-authentication-protocol-exception
'programing' 카테고리의 다른 글
SQLPLUS를 사용하여 CSV 형식의 파일로 스풀하려면 어떻게 해야 합니까? (0) | 2023.02.28 |
---|---|
Angular를 사용하는 로그인 화면이 있는SPA의 예JS 및 ASP에 접속합니다.NET Web API 2? (0) | 2023.02.28 |
ASMX 파일에서 JSON을 출력하는 방법 (0) | 2023.02.28 |
오라클 인덱스를 선택하고 최적화하는 방법 (0) | 2023.02.28 |
as 키워드는 어떤 역할을 합니까? (0) | 2023.02.28 |