ORA-28001: 비밀번호가 만기되었습니다 (ORA-28001: the password has expired) 오류로 인하여, 로그인이 되지 않는 현상이 발생하였을 때 처리 방법을 알아보겠습니다. 예제의 경우, 해당 예외가 처리되지 않았음을 표시해드리고 있습니다.
System.Data.OracleClient.OracleException: 'ORA-28001: the password has expired'
비밀번호 변경
비밀번호 만기 오류를 처리하는 첫 번째 방법. 우선 비밀번호를 변경하여 만기 상태를 해제하도록 합니다. 비밀번호 변경 명령어는 다음과 같습니다. user_name은 스키마, new_password는 변경하려는 새로운 비밀번호입니다.
ALTER USER user_name IDENTIFIED BY new_password;
이때, 사용자가 복수일 수 있으므로 각각 점검을 해주세요. 예를 들면 사용자 A, B 중에 'User A' 하나만 해제하였다가 나중에 'User B' 때문에 다시 문제가 될 수 있기 때문입니다.
패스워드 라이프타임
필요시 DBA에게 패스워드 라이프타임을 무제한으로 지정하도록 요청합니다.
-- DBA 프로필에서 패스워드 관련 조회해 보기 쿼리
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME LIKE '%PASSWORD%';
-- 관리자 계정으로 패스워드 라이프 타임 변경하기
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;