무작정 개발.Vlog

[Oracle] ORA-28001:the password has expired(비밀번호 만기)

by 무작정 개발
반응형

개요

ORA-28001:the password has expired

Oracle DB를 사용하다가 갑자기 위의 에러를 만나게 되었습니다.

위에 나온 구문만 봐도 원인 파악을 하기에는 충분하지만 나중에 까먹을 것을 대비해서 작성하게 되었습니다.


ORA-28001 발생 원인

보통 비밀번호들은 보안상의 이유로 일정 주기마다 변경되어야 합니다.

Oracle 또한 각 계정마다 이 정책을 적용하고 있습니다. 구글링을 해본 결과 보통 Oracle에서 계정을 생성할 때

비밀번호 만료일을 지정하지 않으면 기본적으로 180일로 설정됩니다.


반응형

해결 방법

해결 방법으로 크게 2가지가 있습니다.

당장 사용하기 위해 비밀번호를 변경하거나, 만료일 지정을 해제하는 방법이 있습니다.

[ 비밀번호 만기 해제 ]

ORA-28001:the password has expired 해결방법 1
ORA-28001:the password has expired 해결방법 1

(1) 윈도우 시작 메뉴에서 [CMD]를 입력 -> 명령 프롬프트를 띄웁니다. 혹은 필자처럼 Windows PowerShell Open!

(2) 인증 없이 Oracle 접속하기

sqlplus /nolog

(3) sysdba 계정 접근하기

conn /as sysdba

(4) 해당 계정 비밀번호 변경하기

alter user [비밀번호 변경할 ID] identified by [새로운 비밀번호];

위 (1) 번 ~ (4) 번을 수행하면 비밀번호가 만기 된 계정을 풀고, 비밀번호를 변경할 수 있습니다.

(4) 번까지 수행 후 해당 계정을 접속하는데 [ORA-28000 : the account is locked]가 발생할 수도 있습니다.

위의 에러가 발생하면 아래의 글을 참조.

[Oracle] ORA-28000 : the account is locked

 

[Oracle] ORA-28000 : the account is locked

개요 ORA-28000:the account is locked ORA-28000:계정이 잠금되었습니다. Oracle 계정 비밀번호가 만료되어 비밀번호를 변경하는 과정에서 갑자기 위의 에러가 발생했습니다. 오류 내용 그대로 계정이 잠겼

backendcode.tistory.com

 

[ Oracle 계정 비밀번호 만료일 지정 해제 ]

위에서도 말씀드렸지만 기본적으로 Oracle은 비밀번호 만료일을 지정하지 않으면 180일로 설정됩니다.

만료일 지정 해제를 하지 않으면 180일 간격으로 비밀번호 만기 해제 작업을 해줘야 하고 매우 귀찮습니다.

(1) sysdba 계정까지 접근 후 아래의 Select 명령어를 날린다.

SELECT * FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT';

위 명령어를 날려서 조회를 하면 아래의 화면처럼 만료일이 180일로 설정된 것을 볼 수 있습니다.

만료일 180일 지정
만료일 180일 지정

(2) ALTER 명령어로 비밀번호 변경주기 해제하기

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Oracle 계정 비밀번호 변경주기 해제
Oracle 계정 비밀번호 변경주기 해제

위 명령어를 수행하면 이제는 비밀번호 만료 제한 없이 사용 가능합니다.

반응형

블로그의 정보

무작정 개발

무작정 개발

활동하기