본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

ORA-12638 오류 해결: "Credential retrieval failed"

by 3604 2025. 11. 10.
728x90

 

ORA-12638: Credential retrieval failed 오류는 Windows 운영 체제에서 운영 체제 인증(OS 인증) 실패 시 발생합니다. sqlplus / as sysdba는 Windows 자격 증명(NTS)을 사용하려고 시도하지만, VDI 환경의 도메인 정책이나 권한 문제로 인증에 실패할 때 이 오류가 나타납니다.

핵심 해결 방법: sqlnet.ora 파일 수정

단계 1: sqlnet.ora 파일 찾기

파일 경로 (Oracle XE 21c 기준):
cmd
 
C:\app\<사용자>\product\21c\network\admin\sqlnet.ora
파일 경로 (Oracle 10g XE 기준):
cmd
 
C:\oraclexe\app\oracle\product\10.2.0\server\network\ADMIN\sqlnet.ora

단계 2: 인증 서비스 설정 변경

메모장으로 sqlnet.ora 파일을 열고 아래 라인을 수정 또는 추가하세요:
변경 전 (기본값):
ini
 
SQLNET.AUTHENTICATION_SERVICES = (NTS)
변경 후 (해결책):
ini
 
SQLNET.AUTHENTICATION_SERVICES = (NONE)
또는 (Oracle 19c 이상):
ini
 
SQLNET.AUTHENTICATION_SERVICES = (NONE)
SQLNET.NO_NTLM = FALSE
설명:
  • NTS : Windows NT 인증 사용 시도 (VDI 환경에서 실패)
  • NONE : 운영 체제 인증 비활성화, 비밀번호 인증만 사용

단계 3: Oracle 서비스 재시작

설정 변경 후 반드시 Oracle 서비스를 재시작해야 합니다:
cmd
 
:: Oracle Listener 중지
lsnrctl stop

:: Oracle XE 데이터베이스 서비스 중지
net stop OracleServiceXE

:: Oracle XE 데이터베이스 서비스 시작
net start OracleServiceXE

:: Oracle Listener 시작
lsnrctl start
VDI 환경 특수 대응: VDI 재부팅 후 자동 시작되지 않는 경우:
cmd
 
sc config OracleServiceXE start= auto
sc config OracleOraDB21Home1TNSListener start= auto

단계 4: 재접속 테스트

cmd
 
:: 이제 정상 접속 가능해야 함
sqlplus / as sysdba

:: 또는 비밀번호 인증으로도 테스트
sqlplus sys/YourPassword@XE as sysdba

대체 접속 방법: 비밀번호 직접 사용

sqlnet.ora 수정 없이 즉시 접속이 필요하다면, 비밀번호 인증을 사용하세요:
cmd
 
:: tnsnames.ora에 설정된 XE 서비스로 접속
sqlplus sys@XE as sysdba

:: 또는 전체 TNS 이름 사용
sqlplus sys/password@localhost:1521/XE as sysdba
이 방법은 운영 체제 인증을 건너뛰고 비밀번호로 직접 인증합니다.

VDI 환경에서의 추가 고려사항

원인 1: 도메인 정책 및 권한 문제

VDI 환경에서는 도메인 계정이 로컬 Oracle DBA 그룹에 속하지 않을 수 있습니다.
해결 방법 (VDI 관리자 필요):
  1. 컴퓨터 관리로컬 사용자 및 그룹그룹
  2. ORA_DBA 그룹 편집
  3. VDI 로그인 계정을 멤버로 추가

원인 2: Windows Hello 또는 PIN 로그인

Windows Hello(얼굴 인식, 지문)로 VDI에 로그인하면 OS 인증이 실패할 수 있습니다.
해결 방법:
  • 전통적인 사용자 이름/비밀번호로 VDI 재로그인
  • 또는 sqlnet.ora에서 SQLNET.AUTHENTICATION_SERVICES = (NONE) 설정 사용

원인 3: Oracle 서비스 계정 잠금

Oracle 서비스가 실행 중인 계정이 도메인 정책에 의해 잠길 수 있습니다.
확인 방법:
cmd
 
:: 서비스 계정 확인
sc qc OracleServiceXE

:: 로컬 시스템 계정으로 실행되어야 함 (LocalSystem)

Oracle 19.10.0 이상 Windows 버전 특수 대응

Oracle 19.10.0부터 Windows에서는 보안 패치로 인해 NTLM 인증이 기본적으로 비활성화 되었습니다.
해결 방법 (Oracle 19c 이상): sqlnet.ora에 아래 라인을 추가:
ini
 
SQLNET.NO_NTLM = FALSE
이렇게 하면 NTLM 인증이 다시 활성화되어 sqlplus / as sysdba가 정상 작동합니다.

정리: VDI 환경에서 ORA-12638 해결 체크리스트

  • [ ] sqlnet.ora에서 SQLNET.AUTHENTICATION_SERVICES = (NONE)으로 수정
  • [ ] Oracle 19c 이상에서는 SQLNET.NO_NTLM = FALSE 추가
  • [ ] lsnrctl stop; lsnrctl start로 리스너 재시작
  • [ ] net stop OracleServiceXE; net start OracleServiceXE로 서비스 재시작
  • [ ] VDI 로그인 계정이 ORA_DBA 그룹에 속하는지 확인 (관리자 필요)
  • [ ] Windows Hello 대신 전통적 비밀번호 로그인으로 테스트
  • [ ] Oracle 서비스가 LocalSystem 계정으로 실행되는지 확인

결론

VDI 환경에서 ORA-12638 해결의 99%는 sqlnet.ora 파일 수정입니다. 인증 방식을 NTS에서 NONE으로 변경하면 대부분 즉시 해결됩니다. 수정 후 반드시 서비스를 재시작하고, 접속은 비밀번호 인증으로도 테스트하세요.
만약 수정 후에도 접속이 안 된다면, **정확한 Oracle 버전(10g, 19c, 21c)**과 VDI 환경(도메인 여부, 관리자 권한) 정보를 공유해 주시면 추가 진단이 가능합니다.
728x90