Login failed for user ’sa’ because the account is currently locked out. The system administrator can unlock it.




 LINQ to SQL 을 이용하여 DB를 사용하려 하다가 "SqlException" 이 일어났다. 예외 메시지는 다음과 같다.

" Login failed for user ’six605’ because the account is currently locked out. The system administrator can unlock it."

해당 계정이 잠겼다는 소리인데.. administrator 계정이 해당 계정의 잠금을 풀어줄 수 있다는 소리다. (아직 DB 잘 모르는 상태...)

우선 왜 해당 계정이 잠겼는지 이해가 안갔는데 Windows Server OS 에는 로컬 보안 정책암호 정책계정 잠금 정책이 있다. 해당 계정이 잠길 수 있는 경우는 2가지 이다.


1. 암호 정책 에 의한 계정 잠금


리스트에 여러 항목이 있는데 그 중에서도 "최대 암호 사용 기간" 이라는 것이 있다. 암호 설정 후 여기서 설정한 기간이 지나면 해당 계정이 잠길 수 있다.



2. 계정 잠금 정책 에 의한 계정 잠금


리스트에 보면은 "계정 잠금 임계값" 설정이 있다. 즉, 사용자가 해당 계정으로 로그인 시도 시 설정만큼 로그인 실패 한다면 해당 계정이 잠기게 된다.



cf) 1.
MS Sql Server 에서 계정을 추가하면, Windows 계정에도 추가 되더라...
조금 더 알아봐야 겠지만 SQL Server 의 계정과 Windows 계정이 이원적인게 아니구나!!




cf) 2.
만약 계정이 잠겼다면 다음 SQL 문으로 잠금 해제 시켜줄 수 있다.

use master
go

alter login 로그인계정
with PASSWORD  = '새로운패스워드' unlock
go







MS SQL Server 에 계정을 생성할 때 Windows 의 계정 정책을 적용하지 않게 할 수 있다. 기본적으로는 Windows 의 계정 정책이 적용된다. MSSMS 를 열어보자.



해당 계정의 속성을 보면 "Enforce password policy" 와 "Enforce password expiration" 이 체크되어 있다. 암호 정책과 암호 만기를 적용시키겠다는 것인데, 이것을 체크 해제 시켜주면된다.
Posted by six605
,