흔히 공공기관이나 금융권에서는 패스워드의 사용기간 및 복잡도를 정책에 맞도록 설정 합니다.
User 마다 Profile 이 설정 되어 있는데, 기본적으로는 Default Profile 로 설정 되어 있으며
각각 User 마다 Profile 을 설정 해줄 수 있습니다.
% User 의 Profile 및 Password Life_Time 확인
SQL) col ACCOUNT_STATUS for a18
SQL) col LIMIT for a15
SQL) col LAST_PWD_CHG_DT for a20
SQL) col EXPIRED_PWD_DT for a20
SQL) select u.USERNAME,u.ACCOUNT_STATUS,u.LOCK_DATE,u.EXPIRY_DATE,u.CREATED,u1.ptime as “LAST_PWD_CHG_DT”, P.LIMIT ,
decode ( P.LIMIT , ‘UNLIMITED’,’9999/12/31′ , ‘DEFAULT’, to_char(u1.ptime+180,’YYYY/MM/DD’ ) , to_char(u1.ptime+to_number(P.LIMIT),’YYYY/MM/DD’ ) ) as “EXPIRED_PWD_DT”,u.profile
from dba_users u,sys.user$ u1 , dba_profiles p
where u.username=u1.name
and u.profile = p.profile
and p.RESOURCE_NAME=’PASSWORD_LIFE_TIME’
/
% Default Profile 에 설정되어 있는 값 확인.
SQL) select * from DBA_PROFILES where profile=’DEFAULT’;
% Profile 생성하기
SQL) create profile test limit
password_life_time 30
password_reuse_time 30
password_grace_time 5;
% Profile 생성시 따로 지정을 안해주면 Default Profile 설정을 따라 가게 됩니다.
select * from DBA_PROFILES where profile=’TEST‘;
————————————————————————————————
TEST FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
TEST PASSWORD_LIFE_TIME PASSWORD 30
TEST PASSWORD_REUSE_TIME PASSWORD 30
TEST PASSWORD_REUSE_MAX PASSWORD DEFAULT
TEST PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
TEST PASSWORD_LOCK_TIME PASSWORD DEFAULT
TEST PASSWORD_GRACE_TIME PASSWORD DEFAULT
% User에 Profile 적용 시키는 방법
- 유저 생성
SQL) create user test identified by test profile test;
( create user <USER> identified by <PASSWORD> profile <PROFILE>; )
- 기존에 생성 되어 있던 유저의 Profile 변경
SQL) alter user test profile test;
( alter user <USER> profile <PROFILE>; )
% Profile의 항목을 알아보고 수정 해봅니다.
alter profile default limit password_life_time 30; — 30일마다 Password 를 변경.
alter profile default limit password_reuse_time 30; — 기존에 사용했던 Password를 사용 할 수 없는 기간.(30일)
alter profile default limit password_grace_time 5; — Password 만료 이후에 로그인을 하게 되면 Password 변경할 때 까지의 기간을 설정.
alter profile default limit FAILED_LOGIN_ATTEMPTS 3; — Password가 틀려서 로그인에 3회 실패 하게 되면 User 는 Lock 걸림.
@?/rdbms/admin/utlpwdmg.sql — PASSWORD_VERIFY_FUNCTION verify_function 활성화 시키는 스크립트 (복잡도 설정)