[ORA-28002] 사용자 계정의 암호가 만기될 것입니다.
Oracle 10g 이하에서 DB Schema를 자동으로 생성해주는 Script를 만들어서 사용하고 있었던 터라,
Oracle 11g R1에서도 그대로 사용하여 DB Schema를 생성하고, Test를 하고 있었던 어느 날 갑자기
아래와 같은 Message가 나타납니다.
====================================================================
@> conn scott/tiger@david11g
ERROR:
ORA-28002: 7 일안에 암호가 만기될 것입니다
====================================================================
그래서 Oracle 9iR2와 Oracle 11g R1의 Profiles의 내용을 비교해 보았습니다.
SYS@david9i> select resource_name, limit
2 from dba_profiles
3 where profile = 'DEFAULT'
4 and resource_type = 'PASSWORD';
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
SYS@david11g> select resource_name, limit
2 from dba_profiles
3 where profile = 'DEFAULT'
4 and resource_type = 'PASSWORD';
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME 180
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 7
7 개의 행이 선택되었습니다.
Profile의 유형이 추가된 것을 제외하고, Profile가 Default인것만 비교해보았을 때,
위와 같이 빨간색으로 표시한 부분의 값들에 대한 Default Value가 변경되었습니다.
그럼 변경된 내용들이 어떤 의미가 있는지 확인해보겠습니다.
1. FAILED_LOGIN_ATTEMPTS : 로그인을 실패했을 경우에 대한 제한 횟수
2. PASSWORD_LIFE_TIME : 암호 변경 일수를 의미합니다. 180일 이후에는 암호가 Expired 상태가 됩니다.
3. PASSWORD_LOCK_TIME: 암호 잠김 시간을 의미합니다. (1/1440 으로 설정하면 1분동안 잠김)
4. PASSWORD_GRACE_TIME : 암호 변경 메세지를 출력 날짜를 의미합니다. 이 설정으로 인해 서두에서
나타났던 "ORA-28002"이라는 Alert Message가 나타나는 것입니다.
추가적으로 변경되지 않은 3개의 Resource에 대해서 설명을 하자면,
PASSWORD_REUSE_TIME : 사용했던 암호를 다시 사용 가능한 기간을 의미합니다.
PASSWORD_REUSE_MAX : 사용했던 암호 기억 횟수를 의미합니다. 사용했던 암호를 재사용하지 못하도록
하기 위함입니다.
PASSWORD_VERIFY_FUNCTION : 암호 복잡성 검사 함수를 사용을 하기 위함입니다.
만약, Profle의 값을 변경하고자 한다면 아래와 같이 간단하게 수정할 수 있습니다.
============================================================================
sys@david11g> alter profile default limit
2 password_life_time unlimited;
프로파일이 변경되었습니다.
SYS@david11g> select resource_name, limit
2 from dba_profiles
3 where profile = 'DEFAULT'
4 and resource_name = 'PASSWORD_LIFE_TIME'
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
PASSWORD_LIFE_TIME UNLIMITED
============================================================================