반응형

MSSQL ERROR 18452 로그인 실패
1️⃣ 오류 개요
MSSQL ERROR 18452 – Login failed. Not associated with a trusted SQL Server connection 오류는 클라이언트가 SQL Server에 로그인 시도는 했지만, 서버가 해당 연결을 신뢰할 수 있는 보안 컨텍스트로 인식하지 못할 때 발생한다. 주로 다음과 같은 환경에서 자주 보고된다.
- Kerberos 또는 Active Directory(AD) 인증 체계에 문제가 있는 경우
- SQL Server가 Windows 인증 전용 모드인데 SQL 로그인으로 접속을 시도하는 경우
- 도메인 간 트러스트(Trust) 관계가 깨졌거나, 잘못된 도메인 계정으로 접속할 때
MSSQL ERROR 18452
Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.
Not associated with a trusted SQL Server connection.
핵심 포인트:
- 로그인 자체는 도달했지만 보안 컨텍스트 검증 단계에서 실패
- Kerberos/AD, 인증 모드, 연결 문자열 설정을 먼저 의심해야 함
- 로그인 자체는 도달했지만 보안 컨텍스트 검증 단계에서 실패
- Kerberos/AD, 인증 모드, 연결 문자열 설정을 먼저 의심해야 함
2️⃣ 발생 환경과 대표 증상
ERROR 18452는 특히 도메인 기반 인증이 중요한 다음 환경에서 자주 발생한다.
- 사내 AD 도메인에 가입된 Windows 클라이언트 → 도메인 계정으로 SQL Server 접속
- Azure SQL / Managed Instance 환경에서 AAD 인증 또는 Windows 인증 사용 시도
- 도메인에 가입되지 않은 PC에서 도메인 계정으로 로그인 시도
- 리눅스·중간 애플리케이션 서버를 거쳐 더블 홉(2-hop)으로 MSSQL에 접속하는 구조
증상은 다음과 같다.
- SSMS, 애플리케이션, ODBC 모두 동일하게 로그인 실패
- 같은 계정이라도 특정 PC에서는 접속 가능하지만, 다른 PC에서는 ERROR 18452 발생
- SQL Server ERRORLOG에 18452 로그인 실패 기록이 반복적으로 남음
3️⃣ 주요 원인
■ 1) 인증 모드와 로그인 방식 불일치
- 서버가 Windows 인증 모드(Windows only)인데, SQL 로그인으로 접속 시도
- 반대로 SQL 로그인만 허용되는데, 도메인 계정으로 Windows 인증 접속 시도
■ 2) Kerberos·AD 문제
- 도메인 컨트롤러와의 통신 오류 또는 트러스트 관계 손상
- SPN(Service Principal Name) 미등록 또는 중복 등록
- 서버/클라이언트 시스템 시간 불일치(NTP 설정 오류)
- DNS 역방향 조회 문제로 올바른 SPN을 찾지 못하는 경우
■ 3) 네트워크·토폴로지 이슈
- 중간 애플리케이션 서버를 거치는 더블 홉(Delegation) 환경에서 Kerberos 위임 미구성
- VPN, 방화벽, 로드밸런서를 사용할 때 원래 클라이언트 정보가 올바르게 전달되지 않는 경우
정리하면,
- 인증 모드 설정 오류
- Kerberos/AD 인프라 이상
- 네트워크 토폴로지 및 Delegation 설정 문제
이 세 가지 축에서 원인을 찾는 것이 ERROR 18452 분석의 핵심이다.
- 인증 모드 설정 오류
- Kerberos/AD 인프라 이상
- 네트워크 토폴로지 및 Delegation 설정 문제
이 세 가지 축에서 원인을 찾는 것이 ERROR 18452 분석의 핵심이다.
4️⃣ 분석 절차
■ 1) SQL Server 인증 모드 확인
-- 현재 인증 모드 확인 (레지스트리 또는 서버 속성 GUI로도 확인 가능)
EXEC xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode';
-- 결과
-- 1 = Windows 인증 모드
-- 2 = 혼합 모드(Windows + SQL Server 인증)
클라이언트에서 사용하는 접속 방식(Windows 인증인지, SQL 로그인인지)과 실제 서버 인증 모드가 일치하는지 먼저 확인한다.
■ 2) ERRORLOG 및 로그인 시도 정보 확인
-- 최근 로그인 실패 기록 조회 (SQL 2012 이상: sys.dm_exec_sessions, sys.dm_exec_connections 등 활용)
EXEC xp_readerrorlog 0, 1, 'Error: 18452';
- 어떤 계정, 어떤 IP/호스트에서 실패하는지 확인
- 특정 애플리케이션 서버나 특정 사용자에 국한되는지 파악
■ 3) Kerberos·SPN 상태 점검(요약)
- 도메인에서
setspn -L <서비스계정>명령으로 SPN 등록 상태 확인 - 중복된 SPN이 있는지, MSSQL 서비스 계정에 올바르게 등록되어 있는지 확인
- 서버와 도메인의 시간 동기화(NTP) 상태 확인
5️⃣ 조치 방법
■ 1) 인증 모드 정정
- SQL 로그인 사용이 필요하다면 SQL Server를 혼합 모드(Windows + SQL)로 변경
- 반대로 보안 정책상 Windows 인증만 허용해야 한다면, 모든 애플리케이션이 도메인 계정 기반으로 접속하도록 수정
인증 모드 변경은 SSMS의 서버 속성 > 보안 탭에서 수행 후 서비스 재시작이 필요하다.
■ 2) Kerberos·AD 관련 조치
- MSSQL 서비스 계정에 올바른 SPN 등록
setspn -S MSSQLSvc/server-name:1433 domain\sqlservice setspn -S MSSQLSvc/server-fqdn:1433 domain\sqlservice - 중복 SPN 제거 및 DNS 이름/역방향 조회가 일치하도록 정리
- 서버·클라이언트의 시스템 시간이 도메인 컨트롤러와 일치하도록 NTP 재설정
- 더블 홉 구조라면 AD에서 Kerberos delegation(위임) 설정 검토
■ 3) 연결 문자열 및 계정 사용 방식 점검
- 애플리케이션 연결 문자열에서
Trusted_Connection=Yes또는Integrated Security=SSPI사용 시, 실제 실행 계정이 도메인에 가입된 계정인지 확인 - 로컬 계정 또는 도메인 밖 계정으로 실행된다면, 명시적인 SQL 로그인 또는 서비스 계정 변경 필요
- Azure SQL / Managed Instance의 경우 AAD 인증 사용 시, 토큰·계정 권한·방화벽 규칙을 함께 검토
실무 팁:
- 같은 계정으로 서버 콘솔에서 SSMS 로그인 테스트
- 도메인 로그인은 정상인데 애플리케이션에서만 실패한다면, 애플리케이션 실행 계정·연결 문자열을 집중 점검
- 같은 계정으로 서버 콘솔에서 SSMS 로그인 테스트
- 도메인 로그인은 정상인데 애플리케이션에서만 실패한다면, 애플리케이션 실행 계정·연결 문자열을 집중 점검
6️⃣ 예방 전략
- 정기적으로 SPN·DNS·시간 동기화 상태 점검
- 신규 SQL 인스턴스 구축 시 인증 모드 정책을 명확히 정의
- 애플리케이션 개발 시 인증 방식(Windows / SQL)을 설계 단계에서 결정하고 문서화
- 도메인 트러스트 변경, 계정 정책 변경 시 주요 DB 시스템과의 영향 분석 수행
- 로그인 실패 알람(18452, 18456 등)을 모니터링 시스템에 연동하여 조기 탐지
7️⃣ 기본 오류 대응 4단계
1단계 원인 파악
- ERRORLOG에서 18452 발생 계정·호스트·시간대 확인
- 인증 모드와 접속 방식 일치 여부 점검
2단계 영향 범위 확인
- 특정 사용자/서버에 국한된 문제인지, 전사적 장애인지 구분
3단계 임시 조치
- 긴급히 필요한 계정은 임시로 SQL 로그인 생성 또는 대체 계정 제공
- 운영 중단을 최소화하는 범위 내에서 인증 모드·연결 문자열 임시 수정
4단계 근본 원인 제거
- Kerberos·SPN·DNS·시간 동기화 재정비
- 인증 정책·애플리케이션 설정을 장기적으로 일관성 있게 재구성
- ERRORLOG에서 18452 발생 계정·호스트·시간대 확인
- 인증 모드와 접속 방식 일치 여부 점검
2단계 영향 범위 확인
- 특정 사용자/서버에 국한된 문제인지, 전사적 장애인지 구분
3단계 임시 조치
- 긴급히 필요한 계정은 임시로 SQL 로그인 생성 또는 대체 계정 제공
- 운영 중단을 최소화하는 범위 내에서 인증 모드·연결 문자열 임시 수정
4단계 근본 원인 제거
- Kerberos·SPN·DNS·시간 동기화 재정비
- 인증 정책·애플리케이션 설정을 장기적으로 일관성 있게 재구성
8️⃣ 오류 분석 흐름도
- 외부 노출 확인: 로그인 실패가 외부 네트워크에서도 발생하는지 여부 점검
- 역할·기능 비활성화: 불필요한 테스트 계정·임시 계정 즉시 잠금
- 포트·경로 관리: 관리되지 않는 중간 서버·우회 경로 차단
- 로그 모니터링: ERROR 18452·18456 패턴을 상시 관제하여 재발 여부 확인
반응형
'지식 공유 > DBMS' 카테고리의 다른 글
| PostgreSQL 데이터베이스 사용 가능 범위 (0) | 2025.12.20 |
|---|---|
| Oracle DBLINK 구성 방법과 보안·운영 주의사항 (1) | 2025.12.10 |
| [MSSQL] ERROR 10928 10929 Resource Governor 제한 (0) | 2025.12.01 |
| [ORACLE] ORA-3137 오류 (2) | 2025.12.01 |
| [Oracle] RAC CRS 오류와 oracleasm 디스크 사라짐 문제 해결 (0) | 2025.12.01 |
