만료된 오라클 계정의 비밀번호를 변경하고, 만료기간을 해제해본다.
1. 비밀번호 변경 (재설정)
1-1. 명령 프롬프트(CMD)에서 진행하는 경우
1-2. SQL Plus에서 진행하는 경우
2. 비밀번호 만료기간 해제
3. 비밀번호 만료기간 확인
4. 계정 잠김 해제
오라클 DB의 사용자를 만들 때 프로필이라는 것이 있는데, 이 프로필은 기본적으로 "DEFAULT" 상태로 설정이 된다.
그중 비밀번호 정책도 "DEFAULT"로 설정이 돼는데, 오라클 11g 버전부터 비밀번호를 "DEFAULT" 로 설정했을 시 180일마다 비밀번호가 만료되게 된다.
비밀번호 만료기간이 임박하게 되면 로그인했을 때 ORA-28002 오류가 보이면서 비밀번호 만료까지 며칠 남았는지, 만료되면 ORA-28001 에러와 함께 로그인에 실패할 거라는 등의 경고 메시지가 나오게 된다.
비밀번호 만료기간 후에 로그인하려고 하면 역시나 아래 에러 메시지와 함께 로그인이 불가한 것을 확인할 수 있다.
ORA-28001: the password has expired
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
글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --
'DB > Oracle Database' 카테고리의 다른 글
[OracleDB]오라클 DB 백업(덤프,exp/imp)파일 생성 방법 (0) | 2022.10.22 |
---|