ORA-12638: 자격 증명 취득 실패
상속받은 레거시 VB6 애플리케이션이 있습니다.내가 직면하고 있는 문제는 악명 높은 사람들이
ORA-12638: Credential retrieval failed
에러 메세지가 표시됩니다.그러나 SQLPlus와 Toad에서는 정상적으로 연결할 수 있습니다.구글을 검색해보니 다들 sqlnet.ora 파일을 수정해서
SQLNET.AUTHENTICATION_SERVICES=(NONE)
성공했어.다른 해결책을 찾을 수 있는 사람을 아직 찾지 못했어요.접속 문자열은 다음과 같습니다.
"PROVIDER=OraOLEDB.Oracle;DATA SOURCE=(DESCRIPTION = " & _
"(ADDRESS = (PROTOCOL = TCP)(HOST = server1)
(PORT = 1521))" & _
"(ADDRESS = (PROTOCOL = TCP)(HOST = server2)
(PORT = 1521))" & _
"(LOAD_BALANCE = yes) " & _
"(CONNECT_DATA = " & _
"(SERVER = DEDICATED) " & _
"(SERVICE_NAME = database_name_here) " & _
") " & _
"); " & _
"User Id=username_here;Password=password_here;"
내 VB 코드는 꽤 간단해.
Private oracleDatabaseConnection As ADODB.Connection
Set oracleDatabaseConnection = New ADODB.Connection
oracleDatabaseConnection.Open oracleConnectionString
생각나는 사람?
감사합니다. :)
이 글이 매우 오래된 내용인 것은 알지만, 나에게 맞는 솔루션을 찾았습니다(레거시 VB6 애플리케이션).
sqlnet.ora 파일에서 다음 항목을 변경합니다.
Original Entry - SQLNET.AUTHENTICATION_SERVICES= (NTS)
Modified Entry - SQLNET.AUTHENTICATION_SERVICES= (NONE)
솔루션 링크
솔직히 이것은 다양한 근본 문제로 인해 발생할 수 있는 오류 중 하나입니다.
데이터베이스 서버가 윈도우즈인 경우 이벤트 로그(시스템 및 응용 프로그램)를 확인합니다.당신은 그곳에서 유용한 무언가를 찾을 수 있을 것이다.
Oracle 서비스를 실행하던 계정이 잠겼기 때문에 이 오류가 발생할 수 있습니다.
설명을 찾을 수 없는 경우도 있었습니다만, 유저가 PC를 잠그고 잠금을 해제하는 것으로, 항상 문제를 해결할 수 있었습니다.
접속할 수 있는 클라이언트와는 다른 머신에서 VB 애플리케이션이 실행되고 있습니까?같은 머신에서 다른 클라이언트 프로그램을 사용하여 테스트할 수 있습니까?아니면 사용하시는 머신에서 VB 어플리케이션을 시험할 수 있습니까?
오래된 질문이지만 최근 Windows 업데이트부터 나타나기 시작했습니다.쉽게 해결할 수 있는 방법은 세팅하는 것입니다.
SQLNET.AUTHENTICATION_SERVICES= (NONE)
sqlnet.ora로 이동합니다.
IIS에서 웹 앱을 실행하는 경우 IIS를 재시작하면 도움이 될 수 있습니다.그러나 이것은 많은 논리가 뒷받침되지 않은 문제의 어리버리입니다.
Windows 10 Professional 64비트(스페인판)에 Oracle Database 11g Express Edition 32비트를 설치했습니다.
PC를 재기동하면, 모두 정상적으로 동작합니다.
그러나 다음 날 SQL*PLUS 및 SQLTools 1.9 빌드 15를 사용하면 오류가 발생합니다.
ORA-12638: Credential retrieval failed
sqlnet.ora 파일을 다음과 같이 수정했습니다.
SQLNET.AUTHENTICATION_SERVICES= (NONE)
SQLPlus, SQLTools 1.9 빌드 15를 사용하여 연결할 수 있습니다.
IIS 및 VB 앱을 사용하는 경우 ODBC 관리자에서 새 데이터 소스를 생성하고 연결 문자열에서 공급자별이 아닌 이름으로 참조하면 도움이 될 수 있습니다.
예를 들어, 데이터 원본의 이름이 "test_ds"인 경우,
ObjConn.open "Provider=MSDAORA;User ID=myuser;password=mypassword;Data Source=MYDATASOURCEFROMTNSNAMES;Persist Security Info=False"
위해서
ObjConn.open "dsn=test_ds;pwd=mypassword"
해결책의 이면에 있는 논리를 설명할 수는 없지만, 나에게는 효과가 있었다.
또, Windows Hello 로그인을 사용하고 있는 경우는, Windows 클라이언트 접속이 실패해, 이 에러가 발생할 가능성이 있습니다.
sqlplus un/pw@Dev와 같은 접속용 윈도 인증
얼굴 인식 기능을 사용하여 노트북에 로그인했을 때 ora-12638에서 오류가 발생했습니다(즉,using Hello) 이 문제를 해결하려면 SQLNET을 설정합니다.AUTHENTICATION_SERVICES = (NONE) 또는 기존 창 사용자 이름과 비밀번호로 로그인하십시오.
언급URL : https://stackoverflow.com/questions/379164/ora-12638-credential-retrieval-failed
'programing' 카테고리의 다른 글
| 메서드 JPQL에 대한 쿼리를 검증하지 못했습니다. (0) | 2023.03.10 |
|---|---|
| docker-compose.yml에서 wp cli를 실행하는 방법 (0) | 2023.03.05 |
| PHP-FPM 수신 대기열에 의해 사이트에 액세스할 수 없게 되어 CPU가 100%에 도달합니다. (0) | 2023.03.05 |
| "런타임입니다.protractor를 실행할 때 executionContextCreated에 잘못된 '콘텍스트' 오류가 발생함 (0) | 2023.03.05 |
| Python의 json 모듈, int 사전 키를 문자열로 변환 (0) | 2023.03.05 |