728x90
반응형
만료된 오라클 계정의 비밀번호를 변경하고, 만료기간을 해제해본다.
1. 비밀번호 변경 (재설정)
    1-1. 명령 프롬프트(CMD)에서 진행하는 경우
    1-2. SQL Plus에서 진행하는 경우
2.  비밀번호 만료기간 해제
3.  비밀번호 만료기간 확인
4.  계정 잠김 해제

 

 

오라클 DB의 사용자를 만들 때 프로필이라는 것이 있는데, 이 프로필은 기본적으로 "DEFAULT" 상태로 설정이 된다.

그중 비밀번호 정책도 "DEFAULT"로 설정이 돼는데, 오라클 11g 버전부터 비밀번호를 "DEFAULT" 로 설정했을 시 180일마다 비밀번호가 만료되게 된다.

 

비밀번호 만료기간이 임박하게 되면 로그인했을 때 ORA-28002 오류가 보이면서 비밀번호 만료까지 며칠 남았는지, 만료되면 ORA-28001 에러와 함께 로그인에 실패할 거라는 등의 경고 메시지가 나오게 된다.

ORA-28002

비밀번호 만료기간 후에 로그인하려고 하면 역시나 아래 에러 메시지와 함께 로그인이 불가한 것을 확인할 수 있다.

ORA-28001: the password has expired

ORA-28001

 


SQL Plus에서 사용자 ID와 만료된 기존 비밀번호를 입력하여 접속하면 에러 메시지 (ORA-28001: the password has expired)가 출력되고 자동으로 새로운 비밀번호를 입력하는 창이 나온다.

새로운 비밀번호를 입력 (기존 비밀번호로 재설정해도 상관없음) 하고 확인 입력을 한번 더 하면 재설정은 끝난다.

 

명령 프롬프트(CMD) 실행 ⇒ sqlplus사용자 ID 입력 ⇒ 기존 비밀번호 입력 ⇒  새 비밀번호 입력 ⇒ 새 비밀번호 다시 입력   또는

명령 프롬프트(CMD) 실행 ⇒ sqlplus 사용자 ID/기존비밀번호 ⇒  새 비밀번호 입력 ⇒ 새 비밀번호 다시 입력

 

Microsoft Windows [Version 10.0.19044.2006]
(c) Microsoft Corporation. All rights reserved.

C:\Users\user>sqlplus

SQL*Plus: Release 19.0.0.0.0 - Production on 일 10월 23 15:39:37 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

사용자명 입력: OUTLN
비밀번호 입력:
ERROR:
ORA-28001: the password has expired


OUTLN에 대한 비밀번호를 변경합니다.
새 비밀번호:
새 비밀번호 다시 입력:
비밀번호가 변경되었습니다.

다음에 접속됨:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL>

 

SQL Plus 실행 ⇒ 사용자 ID 입력 ⇒ 기존 비밀번호 입력 ⇒  새 비밀번호 입력 ⇒ 새 비밀번호 다시 입력   또는

SQL Plus 실행 ⇒ 사용자 ID/비밀번호 ⇒  새 비밀번호 입력 ⇒ 새 비밀번호 다시 입력

 

SQL*Plus: Release 19.0.0.0.0 - Production on 일 10월 23 23:10:27 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

사용자명 입력: OUTLN
비밀번호 입력:
ERROR:
ORA-28001: the password has expired


OUTLN에 대한 비밀번호를 변경합니다.
새 비밀번호:
새 비밀번호 다시 입력:
비밀번호가 변경되었습니다.

다음에 접속됨:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL>

 

3. 위와 같이 사용자 ID와 기존 비밀번호(만료된 비밀번호)만 제대로 입력한다면 새 비밀번호를 입력하는 란이 나올 거라 생각하지만 잘 안 되는 경우 SYS계정의 권한(SYSDBA)으로 비밀번호를 바꿀 수 있다.

 

① SYSDBA 권한으로 접속

명령 프롬프트(CMD)에서 진행하는 경우는 sqlplus "/as sysdba" 입력하여 접속

SQL Plus에서 진행하는 경우는 /as sysdba 입력하여 접속

 

② 아래 SQL를 입력하여 비밀번호를 새로 지정

SQL>ALTER USER 사용자 ID IDENTIFIED BY 새로운 비밀번호;
    예) ALTER USER OUTLN IDENTIFIED BY 1234;

 

 


비밀번호를 새로 지정해도 180일 후 만료가 되기 때문에 이 과정이 싫다면 비밀번호의 만료기간을 해제할 수도 있다.

SYSDBA 권한으로 접속 후 아래 SQL를 입력

SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

 

 


특정 사용자 ID의 비밀번호 만료기간을 알고 싶은 경우 SYSDBA 권한으로 접속 후 아래 SQL를 입력하여 비밀번호 만료기간을 확인할 수 있다.

SQL>SELECT EXPIRY_DATE FROM DBA_USERS WHERE USERNAME = '사용자 ID';
Microsoft Windows [Version 10.0.19044.2006]
(c) Microsoft Corporation. All rights reserved.

C:\Users\user>sqlplus "/as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on 일 10월 23 15:50:46 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


다음에 접속됨:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> SELECT EXPIRY_DATE FROM DBA_USERS WHERE USERNAME = 'OUTLN';

EXPIRY_D
--------
22/10/23

SQL>

 

 


로그인 비밀번호를 지정한 횟수 이상(DEFAULT 10회) 잘못 입력했거나 그 외 이유로 계정이 잠긴(LOCK) 경우, SYSDBA 권한으로 접속 후 아래 SQL를 입력하여 잠금을 풀 수(UNLOCK) 있다.

SQL>ALTER USER 사용자 ID ACCOUNT UNLOCK;
    예) ALTER USER OUTLN ACCOUNT UNLOCK;

 

 

참조
How to Fix ORA-28002 The Password Will Expire in 7 Days Errors
https://blogs.oracle.com/sql/post/how-to-fix-ora-28002-the-password-will-expire-in-7-days-errors

글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --
728x90
반응형