[Oracle] ORA-28001:the password has expired(비밀번호 만기)
by 무작정 개발개요
ORA-28001:the password has expired
Oracle DB를 사용하다가 갑자기 위의 에러를 만나게 되었습니다.
위에 나온 구문만 봐도 원인 파악을 하기에는 충분하지만 나중에 까먹을 것을 대비해서 작성하게 되었습니다.
ORA-28001 발생 원인
보통 비밀번호들은 보안상의 이유로 일정 주기마다 변경되어야 합니다.
Oracle 또한 각 계정마다 이 정책을 적용하고 있습니다. 구글링을 해본 결과 보통 Oracle에서 계정을 생성할 때
비밀번호 만료일을 지정하지 않으면 기본적으로 180일로 설정됩니다.
해결 방법
해결 방법으로 크게 2가지가 있습니다.
당장 사용하기 위해 비밀번호를 변경하거나, 만료일 지정을 해제하는 방법이 있습니다.
[ 비밀번호 만기 해제 ]
(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 계정 비밀번호 만료일 지정 해제 ]
위에서도 말씀드렸지만 기본적으로 Oracle은 비밀번호 만료일을 지정하지 않으면 180일로 설정됩니다.
만료일 지정 해제를 하지 않으면 180일 간격으로 비밀번호 만기 해제 작업을 해줘야 하고 매우 귀찮습니다.
(1) sysdba 계정까지 접근 후 아래의 Select 명령어를 날린다.
SELECT * FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT';
위 명령어를 날려서 조회를 하면 아래의 화면처럼 만료일이 180일로 설정된 것을 볼 수 있습니다.
(2) ALTER 명령어로 비밀번호 변경주기 해제하기
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
위 명령어를 수행하면 이제는 비밀번호 만료 제한 없이 사용 가능합니다.
'DataBase > Oracle' 카테고리의 다른 글
Oracle 버전 & JDK 버전에 따른 ojdbc.jar 버전 선택 (1) | 2023.07.26 |
---|---|
[Oracle] 오라클 Port 번호 및 SID 확인 방법 (0) | 2023.07.26 |
[Oracle] ORA-28000 : the account is locked (3) | 2023.05.01 |
[Oracle] Windows 10 오라클 19c 설치 및 세팅 방법 (0) | 2023.03.13 |
[PL/SQL] 커서(CURSOR), 패키지, 트리커(TRIGGER) (0) | 2022.02.04 |
블로그의 정보
무작정 개발
무작정 개발