본문 바로가기

[Oracle] ORA-28001: 비밀번호가 만기되었습니다. 오류 해결 방법

다프트 코더 2025. 4. 15.

오라클 데이터베이스를 사용하다 보면 갑자기 "ORA-28001: 비밀번호가 만기 되었습니다"라는 오류 메시지가 발생하는 경우가 있습니다. 이 오류는 사용자 계정의 비밀번호가 만료되어 발생하는 에러입니다. ORA-28001 에러에 대한 해결 방법에 대해서 알아보겠습니다.

ORA-28001 에러 발생 원인

오라클은 보안상의 이유로 기본 180일 주기로 비밀번호를 재설정하도록 설정되어 있습니다. 그래서 180일 이후에 사용자의 비밀번호를 변경하지 않았을 경우 ORA-28001 에러가 발생할 수 있습니다. 그리고 데이터베이스 관리자가 사용자 계정의 비밀번호를 강제로 만료시켰을 경우에도  ORA-28001 에가 발생합니다.

비밀번호 만료된 계정 조회

데이터베이스에 SYS 계정으로 접속합니다. 그리고 아래 쿼리를 이용해 비밀번호가 만료된 계정 정보를 조회합니다.

SELECT USERNAME, EXPIRY_DATE, ACCOUNT_STATUS
FROM DBA_USERS
WHERE ACCOUNT_STATUS = 'EXPIRED';

비밀번호가 만료된 사용자 계정이 조회됩니다.

비밀번호 변경하기

 

SYS 계정에서 아래 쿼리를 이용해 사용자 계정의 비밀번호를 변경해 줍니다.

ALTER USER TRGUSR IDENTIFIED BY trgusr123;
--ALTER USER "사용자계정" IDENTIFIED BY "새로운 비밀번호";

DBA_USERS 테이블을 다시 조회해 보면 ACCOUNT_STATUS = OPEN으로 변경되었고 EXPIRY_DATE 값도 변경된 걸 확인할 수 있습니다.

비밀번호 만료 기간 변경하기

180일 이후에 다시 비밀번호를 변경하는 게 불편하다면 비밀번호 만료 기간을 변경할 수 있습니다. 아래 쿼리를 이용해 비밀번호 만료 기간을 확인합니다.

SELECT RESOURCE_NAME, LIMIT
FROM DBA_PROFILES
WHERE PROFILE = 'DEFAULT'
AND RESOURCE_NAME = 'PASSWORD_LIFE_TIME';

그리고 아래 쿼리로 비밀번호 만료 기간을 변경하겠습니다.

 

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
--ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 365; --365일 주기 변경

그러면 PASSWORD_LIFE_TIME LIMIT 값이 변경된 걸 확인할 수 있습니다. UNLIMITED는 비밀번호 만료 기간을 영구적으로 설정하겠다는 의미입니다. 만료 기간 주기를 365일로 하고 싶으면 365로 입력하면 됩니다.

마치며

오라클 데이터베이스 "ORA-28001: 비밀번호가 만기되었습니다" 오류는 비밀번호 만료로 인해 발생하는 오류이며 비밀번호 재설정, 비밀번호 변경 정책을 변경해서 해결할 수 있습니다. 보안과 편의성 사이에서 적절한 방법을 선택해서 해당 문제를 해결했으면 합니다.

반응형

댓글