[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 컬럼은 다음과 같은 값을 가질 수 있습니다:

  1. OPEN: 계정이 활성화된 상태.
  2. LOCKED: 계정이 잠긴 상태(LOCK_DATE 컬럼에 값이 있음). 아래와 같은 명령문으로 사용자를 Lock시킬 수 있습니다.
    SQL> ALTER USER username ACCOUNT LOCK;
    
  3. 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;
      
  4. EXPIRED & LOCKED: 비밀번호가 만료되고 계정이 잠긴 상태.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다