내 grails 프로젝트를 windows (8) 시스템의 Oracle databse ( 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
인터넷 제안에 따르면 *.ora
파일 편집도 시도했지만 작동하지 않습니다.
sqlnet.ora
파일 에 다음 스 니펫을 추가했습니다 .
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
여기에서 (10,11,12) 할당을 시도했지만 둘 다 작동하지 않습니다.
누구든지 이것으로 나를 도울 수 있습니까?
답변
나는 ojdbc14.jar 파일을 삭제하고 대신 ojdbc6.jar을 사용했고 그것은 나를 위해 일했습니다
답변
다음은 전문가 교환 에서 찾은 텍스트입니다 .
버그 14575666
12.1에서는 SQLNET.ALLOWED_LOGON_VERSION 매개 변수의 기본값이 11로 업데이트되었습니다. 이는 SQLNET.ALLOWED_LOGON_VERSION 매개 변수가 이전 기본값 인 8로 설정되지 않는 한 11g 이전 JDBC 씬 드라이버를 사용하는 데이터베이스 클라이언트가 12.1 데이터베이스 서버에 인증 할 수 없음을 의미합니다.
이로 인해 DBCA를 사용한 10.2.0.5 Oracle RAC 데이터베이스 생성이 실패하고 ORA-28040 : 12.1 Oracle ASM 및 Oracle Grid Infrastructure 환경에서 일치하는 인증 프로토콜 오류가 없습니다.
해결 방법 : oracle / network / admin / sqlnet.ora 파일에서 SQLNET.ALLOWED_LOGON_VERSION = 8을 설정합니다.
답변
ojdbc8.jar을 사용하여이 문제를 해결했습니다. Oracle 12c는 ojdbc8.jar와 호환됩니다.
답변
이것은 sqlnet.ora에 다음을 추가하는 것을 제외하고
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
“ORA-01017 : 유효하지 않은 사용자 이름 / 암호; 로그온 거부”오류가 발생하면 암호를 다시 만들어야합니다.
답변
sqlnet.ora에 다음을 추가하는 것을 제외하고
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
또한 클라이언트와 서버 모두에 다음을 추가하여 문제를 해결했습니다.
SQLNET.AUTHENTICATION_SERVICES = (NONE)
답변
나는 이클립스를 사용하고 있었고 다른 모든 답변을 시도한 후에는 작동하지 않았습니다. 결국 나를 위해 일한 ojdb7.jar
것은 빌드 경로에서 맨 위로 이동하는 것이 었습니다 . 이는 여러 jar에 동일한 클래스가 충돌 할 때 발생합니다.
- 프로젝트 선택
Project Explorer
- 오른쪽 클릭
Project -> Build Path -> Configure Build Path
Order and Export
탭으로 이동하여 선택ojdbc.jar
- 버튼
TOP
을 클릭 하여 맨 위로 이동
답변
첨가
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
완벽한 솔루션 sql.ora 디렉토리 .. \ product \ 12.1.0 \ dbhome_1 \ NETWORK \ ADMIN