====== 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]]