Unlock user
Locked user 모두 해제
Oracle DBMS 는 설정을 하지 않는 경우 180일이 지나면 계정을 잠금 처리한다.
이로 인해 갑자기 잘 되던 데이터베이스가 안되는 현상이 발생한다.
Caused by: java.sql.SQLException: ORA-28001: the password has expired
하나씩 해제할 경우 다음과 같이 처리한다.
ALTER USER 아이디 ACCOUNT UNLOCK
ALTER USER 아이디 IDENTIFIED BY 비밀번호;
다음은 모든 Locked 사용자를 아이디와 동일한 비밀번호로 초기화하기 위해 만든 PL/SQL이다.
BEGIN
-- 결과만큼 반복할 SQL 구문을 작성하고 별칭을 DDL로 부여
FOR CUR IN (
SELECT
'ALTER USER ' || USERNAME || ' IDENTIFIED BY ' || USERNAME AS DDL1,
'ALTER USER ' || USERNAME || ' ACCOUNT UNLOCK' AS DDL2
FROM DBA_USERS
WHERE ACCOUNT_STATUS LIKE 'EXPIRE%'
)
LOOP
BEGIN
-- 조회된 구문 실행
EXECUTE IMMEDIATE CUR.DDL1;
EXECUTE IMMEDIATE CUR.DDL2;
EXCEPTION
-- 예외 발생 시 아무작업을 하지 않음
WHEN OTHERS THEN
NULL;
END;
END LOOP;
END;
/
Last updated