[Oracle] 사용자의 상태 확인 및 상태 변경 방법
사용자의 현재 상태를 확인하려면 DBA_USERS 뷰의 ACCOUNT_STATUS, LOCK_DATE, EXPIRY_DATE, PROFILE 컬럼 값을 확인합니다.
SELECT USERNAME, ACCOUNT_STATUS, LOCK_DATE, EXPIRY_DATE, PROFILE FROM DBA_USERS WHERE USERNAME = 'username';
ACCOUNT_STATUS 컬럼은 다음과 같은 값을 가질 수 있습니다:
- OPEN: 계정이 활성화된 상태.
- LOCKED: 계정이 잠긴 상태(LOCK_DATE 컬럼에 값이 있음). 아래와 같은 명령문으로 사용자를 Lock시킬 수 있습니다.
SQL> ALTER USER username ACCOUNT LOCK;
- EXPIRED: 비밀번호가 만료된 상태(EXPIRY_DATE 컬럼에 값이 있음). 다음 로그인할 때 변경해야 합니다.
- 즉시 만료시키는 방법
SQL> ALTER USER username PASSWORD EXPIRE;
- 프로파일을 사용해서 비밀번호의 만료 정책를 설정하는 방법(90일 설정)
SQL> CREATE PROFILE custom_profile LIMIT PASSWORD_LIFE_TIME 90; SQL> SELECT PROFILE, RESOURCE_NAME, LIMIT 2 FROM DBA_PROFILES 3 WHERE PROFILE = 'custom_profile' 4 AND RESOURCE_NAME = 'PASSWORD_LIFE_TIME'; PROFILE RESOURCE_NAME LIMIT ------------ ---------------------- ---------------- RO_PROFILE PASSWORD_LIFE_TIME 90 SQL> ALTER USER username PROFILE custom_profile;
- 즉시 만료시키는 방법
- EXPIRED & LOCKED: 비밀번호가 만료되고 계정이 잠긴 상태.