====== ORA-28000 ACCOUNT IS LOCK ====== ===== 정의 ===== - CREATE PROFILE 명령을 사용하여 로그인을 시도할 경우에 허용된 실패횟수를 지정할 수 있을 뿐 아니라 \\ 유저 계정이 잠금상태로 남아 있게 되는 시간도 지정할 수 있음! ===== ACCOUNT LOCK의 확인 및 조치 ===== - 접속시에 일정 회수 이상 실패한 후 CONNECT를 시도하면 ** ORA-28000: the account is locked** 의 ERROR \\ SELECT USERNAME,ACCOUNT_STATUS,TO_CHAR(LOCK_DATE,'YYYY.MM.DD HH24:MI') LOCK_DATE FROM DBA_USERS; USERNAME ACCOUNT_STATUS LOCK_DATE ------------------------------ -------------------------------- ---------------- SCOTT OPEN CTXSYS EXPIRED & LOCKED 2008.09.26 11:09 TESTDBA LOCKED(TIMED) 2008.10.15 10:56 SCOTT EXPIRED & LOCKED 2008.09.26 11:09 - SCOTT 의 LOCK 상태를 해제한다. ALTER USER SCOTT ACCOUNT UNLOCK; - 상태를 확인한다. SELECT USERNAME,ACCOUNT_STATUS,TO_CHAR(LOCK_DATE,'YYYY.MM.DD HH24:MI') LOCK_DATE FROM DBA_USERS WHERE USERNAME='SCOTT'; USERNAME ACCOUNT_STATUS LOCK_DATE ------------------------------ -------------------------------- ---------------- SCOTT EXPIRED - SCOTT 계정의 암호를 설정하여 EXPIRED를 해제한다. ALTER USER SCOTT IDENTIFIED BY TIGER; USERNAME ACCOUNT_STATUS LOCK_DATE ------------------------------ -------------------------------- ---------------- SCOTT OPEN * 계정 잠금을 해제하기 위해서는 아래의 SQL을 수행하면 된다. ALTER USER user_id ACCOUNT UNLOCK; ===== PROFILE ===== ==== PROFILE 조회 ==== - 사용자의 PROFILE 조회방법 set lines 200 set pages 200 SELECT U.USERNAME,P.PROFILE, P.RESOURCE_NAME, P.LIMIT FROM DBA_USERS U, DBA_PROFILES P WHERE P.PROFILE=U.PROFILE AND USERNAME='SCOTT'; - 계정별 FAILED_LOGIN_ATTEMPTS 조회 set lines 200 set pages 200 SELECT U.USERNAME,P.PROFILE, P.RESOURCE_NAME, P.LIMIT FROM DBA_USERS U, DBA_PROFILES P WHERE P.PROFILE=U.PROFILE AND RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS'; ==== PROFILE 변경 ==== - DEFAULT 로 설정되어 있는 사용자의 FAILED_LOGIN_ATTEMPTS를 UNLIMITED 상태로 변경 ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED; - DEFAULT 로 설정되어 있는 사용자의 FAILED_LOGIN_ATTEMPTS를 5 로 변경 \\ 5번 로그인 에러시 계정 잠금 ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 5; ===== PROFILE을 통한 ACCOUNT 로그인 에러 횟수 조절 ===== - SERVICE_PROFILE 이름의 PROFILE 생성 \\ EM 으로 생성하면 훨씬 편하고 직관적으로 생성할 수 있다. CREATE PROFILE "SERVICE_PROFILE" LIMIT CPU_PER_SESSION DEFAULT CPU_PER_CALL DEFAULT CONNECT_TIME UNLIMITED IDLE_TIME DEFAULT SESSIONS_PER_USER UNLIMITED LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL DEFAULT PRIVATE_SGA DEFAULT COMPOSITE_LIMIT DEFAULT PASSWORD_LIFE_TIME DEFAULT PASSWORD_GRACE_TIME DEFAULT PASSWORD_REUSE_MAX DEFAULT PASSWORD_REUSE_TIME DEFAULT PASSWORD_LOCK_TIME DEFAULT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_VERIFY_FUNCTION DEFAULT - SCOTT 계정에 SERVICE_PROFILE 을 적용한다. ALTER USER "SCOTT" PROFILE "SERVICE_PROFILE" - SCOTT 계정의 설정정보이다. USERNAME PROFILE RESOURCE_NAME LIMIT ---------- ------------------------------ -------------------------------- ----------- SCOTT SERVICE_PROFILE COMPOSITE_LIMIT DEFAULT SCOTT SERVICE_PROFILE SESSIONS_PER_USER UNLIMITED SCOTT SERVICE_PROFILE CPU_PER_SESSION DEFAULT SCOTT SERVICE_PROFILE CPU_PER_CALL DEFAULT SCOTT SERVICE_PROFILE LOGICAL_READS_PER_SESSION DEFAULT SCOTT SERVICE_PROFILE LOGICAL_READS_PER_CALL DEFAULT SCOTT SERVICE_PROFILE IDLE_TIME DEFAULT SCOTT SERVICE_PROFILE CONNECT_TIME UNLIMITED SCOTT SERVICE_PROFILE PRIVATE_SGA DEFAULT SCOTT SERVICE_PROFILE FAILED_LOGIN_ATTEMPTS UNLIMITED SCOTT SERVICE_PROFILE PASSWORD_LIFE_TIME DEFAULT SCOTT SERVICE_PROFILE PASSWORD_REUSE_TIME DEFAULT SCOTT SERVICE_PROFILE PASSWORD_REUSE_MAX DEFAULT SCOTT SERVICE_PROFILE PASSWORD_VERIFY_FUNCTION DEFAULT SCOTT SERVICE_PROFILE PASSWORD_LOCK_TIME DEFAULT SCOTT SERVICE_PROFILE PASSWORD_GRACE_TIME DEFAULT \\ **FAILED_LOGIN_ATTEMPTS = UNLIMITED** 로 되어 있는 것을 확인할 수 있다. ===== 참고 URL ===== - [[http://kr.forums.oracle.com/forums/thread.jspa?threadID=468596&tstart=589]]