18452: Login failed. The login is from an untrusted domain and cannot be used with Windows authentication (로그인 실패. 신뢰할 수 없는 도메인의 로그인은 Windows 인증에 사용할 수 없음)
SQL Server의미
Windows 인증 로그인 시도가 신뢰할 수 없는 도메인에서 와서(또는 SQL 인증이 필요한 곳에서 Windows 인증을 사용해) 거부되었다. 서버가 이 ID를 신뢰하지 않는다.
원인
클라이언트가 SQL Server가 신뢰하지 않는 도메인/워크그룹의 Windows ID로 접속하거나, 머신이 서로 다른/신뢰하지 않는 도메인에 있거나, Kerberos/SPN 구성이 잘못되었거나, SQL 인증이 예상되는데 연결 문자열이 Integrated Security를 사용하는 경우다. mixed mode가 비활성화된 상태에서 SQL 로그인을 시도해도 비슷한 증상이 나타난다.
해결 방법
SQL 인증이 필요하다면 서버를 Mixed Mode로 전환하고 연결 문자열에 사용자 이름/비밀번호를 사용한다(Integrated Security=false). Windows 인증이 필요하다면 도메인 트러스트와 DNS/Kerberos SPN 구성을 확인한다. 클라이언트와 서버가 같은 도메인 또는 신뢰하는 도메인에 있는지 확인한다. 오류 로그의 'state' 값으로 원인을 좁힌다.
같은 데이터베이스의 다른 항목
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource (SQL Server Database Engine 인스턴스가 LOCK 리소스를 확보할 수 없음)
- 3906Failed to update database because the database is read-only (데이터베이스가 읽기 전용이어서 갱신 실패)
- 15023User already exists in the current database (현재 데이터베이스에 사용자가 이미 존재)
- 605Attempt to fetch logical page belongs to a different allocation unit (가져오려는 논리 페이지가 다른 allocation unit에 속함)
- 4922ALTER TABLE ALTER COLUMN failed because one or more objects access this column (하나 이상의 객체가 이 컬럼에 접근하므로 ALTER TABLE ALTER COLUMN 실패)
- 7202Could not find server 'name' in sys.servers (sys.servers에서 서버를 찾을 수 없음)
- 40501The service is currently busy. Retry the request after 10 seconds (서비스가 현재 바쁨. 10초 후 재시도)