18456: Login failed for user
SQL Server의미
인증 중 로그인 시도가 거부되었다. 사용자 이름/비밀번호가 틀렸거나, 계정이 비활성화되었거나, 사용자에게 데이터베이스 접근 권한이 없을 수 있다.
원인
잘못된 비밀번호, 존재하지 않는 로그인, 비활성화/잠긴 계정, Windows 인증만 활성화된 상태에서 SQL 로그인 사용, 또는 기본 데이터베이스에 접근 불가. 오류 텍스트의 State 코드가 실제 원인을 나타낸다(State 5: 로그인이 존재하지 않음, State 7: 로그인이 비활성화되고 비밀번호도 틀림, State 8: 잘못된 비밀번호(가장 흔함), State 18: 비밀번호 변경 필요, State 38: 지정한 데이터베이스를 열 수 없음, State 58: 서버가 Windows 전용 인증 모드인데 SQL 로그인을 시도함).
해결 방법
SQL Server 오류 로그의 State 값으로 근본 원인을 찾는다(보안상 상세 정보는 클라이언트에 전송되지 않는다). 사용자 이름/비밀번호를 확인한다. 서버가 'SQL Server and Windows Authentication Mode'(혼합 모드)로 동작하는지 확인하고, 변경했다면 서비스를 재시작한다. 대상 데이터베이스에서 로그인의 사용자 매핑과 접근 권한을 확인한다.
같은 데이터베이스의 다른 항목
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint
- 8152String or binary data would be truncated
- 2628String or binary data would be truncated in table, column ...; truncated value
- 1222Lock request time out period exceeded
- 9002The transaction log for database is full due to ...