왜인지 비밀번호도 틀리지 않았고, 로컬 계정임에도 자꾸 Oracle 계정이 잠긴다.
지속적으로 이런 일이 일어날 것 같아서, 계정이 잠겼을 때 해제하는 법을 기록하여 복기하고자 한다.
1. SYSTEM 계정 접속
sqlplus "/as sysdba"
CMD에 위 명령어를 입력하여 SYSTEM 계정으로 Oracle에 접속한다.
디렉터리 위치는 상관없는 듯하다.
명령어를 입력하면 위 사진처럼 Oracle 접속이 가능하다.
2. 계정 상태 조회
SELECT USERNAME, ACCOUNT_STATUS, LOCK_DATE FROM DBA_USERS;
해당 명령어를 통해 내가 확인하고 싶은 계정의 상태를 확인할 수 있다.
특정 계정만 확인하고 싶다면, WHERE
절을 추가해 주면 된다.
3. 계정 잠금 해제
ALTER USER {USERNAME} ACCOUNT UNLOCK;
잠금을 해제하고 싶은 계정을 다음과 같이 풀어준다.
잠금 빈도 줄이기
SELECT RESOURCE_NAME, LIMIT
FROM DBA_PROFILES
WHERE PROFILE = 'DEFAULT';
위 SQL문으로 계정 잠금이 발생하는 원인을 확인할 수 있다.
보통 Oracle 계정 잠금이 발생하는 주된 이유는 다음과 같다고 한다
1. 비밀번호 오류
사용자가 지정된 횟수 이상으로 잘못된 비밀번호를 입력하면 계정이 잠길 수 있다.
이 경우, 위 튜플 중 FAILED_LOGIN_ATTEMPTS
설정에 따라 계정이 잠긴다.
비밀번호 오류 횟수가 FAILED_LOGIN_ATTEMPTS
에 설정된 LIMIT
이상을 넘으면PASSWORD_LOCK_TIME
에 지정된 일수만큼 계정이 잠긴다.
2. 비밀번호가 만료되었을 때
PASSWORD_LIFE_TIME
설정에 따라 주기적 비밀번호 변경을 강제하기 위해 계정이 잠길 수 있다.
비밀번호 만료 기간을 늦추고 싶거나, 앞당기고 싶을 때 해당 튜플의 LIMIT
값을 변경해 주면 된다.
3. 계정을 오래 사용하지 않았을 때
오랫동안 사용하지 않은 계정 또한 잠길 수 있다.INACTIVE_ACCOUNT_TIME
에 표기된 일수만큼 계정에 접속하지 않았을 경우,
계정이 자동으로 잠기는 일이 발생한다.
언급된 주된 이유 중 자신의 계정이 왜 잠겼는지 파악하고,LIMIT
속성값을 변경하거나 계정을 갱신하는 방법으로 문제를 해결할 수 있다.
(필자는 왜 잠겼는지 도대체가 모르겟음,)
'데이터베이스 > SQL' 카테고리의 다른 글
[Oracle] DCL, TCL (0) | 2024.07.10 |
---|---|
[Oracle] DDL, DML (0) | 2024.07.10 |
[Oracle] Oracle Database 시작하기 (DBeaver, 계정 생성) (0) | 2024.07.09 |
DB UPSERT 쿼리문 만들기 (존재하면 UPDATE, 있으면 INSERT) (0) | 2024.07.05 |
Procedure; 프로시저 (0) | 2024.06.27 |