오랜만에 접속한 Oracle에 다음과 같은 에러창이 계속 발생했다.
ORA-28000: the account is locked 은 잘못된 패스워드로 계속 접속 시도하다가 설정 횟수를 초과했을 경우 또는 30일 동안(Default) 해당 계정으로 로그인을 하지 않았을 경우 Lock이 걸린다.
이걸 해결 방법으로는 cmd창만 있으면 된다.
1. sysdba에 접속한다.
=> sqlplus "/as sysdba"
2. Lock이 된 사용자 확인
=> SELECT username, account_status, lock_date FROM dba_users;
(⚠️ LOCKED<TIMED>라고 되있으면, 패스워드 설정횟수 입력 오류로 아래의 Unlock 명령만 입력하면되고, EXPORED & LOCKED 라고 되있으면 패스워드 기간만료이므로 Unlock 후 비밀번호를 지정해줘야 한다!)
3. Lock된 사용자 Unlock
=> ALTER USER 사용자명 ACCOUNT UNLOCK;
4. 사용할 계정 패스워드 변경
=> ALTER USER 사용자명 IDENTIFIED BY 변경할 패스워드;
5. COMMIT(필수!)
=> COMMIT;
+ 패스워드 Lock 횟수 확인 방법
SELECT U.USERNAME, P.PROFILE, P.RESOURCE_NAME, P.LIMIT
FROM DBA_USERS U, DBA_PROFILES P WHERE P.PROFILE=U.PROFILE
AND RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';
+ 횟수 제한 삭제하는 방법
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPS UNLIMITED;
cmd창에서 commit까지 끝낸 후 비밀번호 입력후 테스트(T)를 누르면 이전과 달리 상태에 성공이 뜨는 걸 볼 수 있다.