ORA-28002: n 일안에 비밀번호가 만기될 것입니다(the password will expire within n days)

Oracle DB

오류 내용

다음은 ORA-28002가 발생한 로그인 결과 화면 입니다.

C:\>sqlplus scott/tiger@192.168.127.130/orcl
SQL*Plus: Release 12.2.0.1.0 Production on Mon Mar 1 13:14:58 2021
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
ERROR:
ORA-28002: the password will expire within 7 days
Last Successful login time: Sat Jan 30 2021 15:49:03 +09:00
Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
SQL>

참고로 한글 메시지는 다음과 같습니다.

C:\>set nls_lang=KOREAN_KOREA.KO16MSWIN949
C:\>sqlplus scott/tiger@192.168.127.130/orcl
SQL*Plus: Release 12.2.0.1.0 Production on 금 10월 15 18:10:48 2021
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
ERROR:
ORA-28002: 4 일안에 비밀번호가 만기될 것입니다
마지막 성공한 로그인 시간: 화 10월 12 2021 02:18:10 +09:00
다음에 접속됨:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
SQL>

Oracle 일반 사용자로 로그인을 했을 때 이와 같이 ORA-28002가 발생 했다면 사용자의 profile DEFAULT와 관련된 PASSWORD_LIFE_TIME (비밀번호 유효 기간) 과 PASSWORD_GRACE_TIME (비밀번호 만료 유예 기간)의 설정을 알아야 합니다.

다음 SQL문으로 로그인한 사용자 자신의 상태를 출력합니다. ACCOUNT_STATUS항목에 출력 된 EXPIRED(GRACE)는 비밀 번호는 만료되었지만 오늘 2021/03/01 부터 만료일 2021/03/08까지 아직은 유예 기간으로 ORA-28002 메시지를 표시하면서 로그인 할 수 있다는 상태를 의미합니다..

COLUMN username FORMAT A6;
COLUMN account_status FORMAT A15;
COLUMN lock_date FORMAT A12;
COLUMN expiry_date FORMAT A12;
select username , account_status , sysdate as today , expiry_date 
  from user_users;

USERNA ACCOUNT_STATUS  TODAY      EXPIRY_DATE
------ --------------- ---------- ------------
SCOTT  EXPIRED(GRACE)  2021/03/01 2021/03/08

이 유예 기간이 끝나기 전에 사용자 자신의 비밀번호를 변경 하거나 DBA권한을 가진 관리자로 로그인해 비밀번호 유효 기간을 무기한으로 변경 해야 합니다.

사용자 자신의 비밀번호를 변경은 다음 글을 참조하십시오

Oracle 사용자 자신의 비밀번호 변경
사용자 자신의 비밀번호 변경 사용자는 로그인할 때 ORA-28002: the password will expire within 7 days의 메시지를 표시되거나 패스워드를 정기적으로 변경하고 싶을 때 다음과 같이 사...

비밀번호 유효 기간을 무기한으로 변경은 다음 글을 참조하십시오

Oracle 비밀번호 유효 기간을 무기한으로 변경하기
Oracle 데이터베이스에서 비밀번호 만료 기간을 무기한으로 설정하는 방법을 상세히 설명합니다. PASSWORD_LIFE_TIME 값을 무제한으로 설정하여 자주 발생하는 비밀번호 만료 문제를 해결하는 단계별 가이드입니다.

사용자 프로파일 확인

사용자 프로파일 확인을 위해서는다음과 같이 dba권한을 가진 사용자로 로그인 해야 합니다.

sqlplus sys/manager@192.168.127.130/orcl as sysdba

다음 SQL문으로 사용자가 속한 profile을 확인 할 수 있습니다.

COLUMN username FORMAT A8;
COLUMN profile FORMAT A8;
select username, profile from dba_users where lower(username) = 'scott';

USERNAME PROFILE
-------- --------
SCOTT    DEFAULT

다음과 같이 Oracle12c에서는 PASSWORD_LIFE_TIME (비밀번호 유효 기간)의 profile DEFAULT값은 180 일로 설정되어 있습니다. 즉 6개월마다 비밀번호를 변경하지 않으면 안됩니다.

 COLUMN profile FORMAT A16;
 COLUMN resource_type FORMAT A13;
 COLUMN limit FORMAT A6;
 SELECT profile,resource_type,limit
   FROM dba_profiles
  WHERE resource_name='PASSWORD_LIFE_TIME';

PROFILE          RESOURCE_TYPE LIMIT
---------------- ------------- ------
DEFAULT          PASSWORD      180
ORA_STIG_PROFILE PASSWORD      60
SQL>

다음 SQL문으로 PASSWORD_GRACE_TIME (비밀번호 만료 유예 기간)의 profile DEFAULT값을 확인 할 수 있습니다. (기본 7 일)

COLUMN profile FORMAT A16;
COLUMN resource_type FORMAT A13;
COLUMN limit FORMAT A6;
SELECT profile,resource_type,limit
       FROM dba_profiles
      WHERE resource_name='PASSWORD_GRACE_TIME';

PROFILE          RESOURCE_TYPE LIMIT
---------------- ------------- ------
DEFAULT          PASSWORD      7
ORA_STIG_PROFILE PASSWORD      5

유예 기간도 지나버린 경우

그렇다면 PASSWORD_LIFE_TIME (비밀번호 유효 기간) 도 PASSWORD_GRACE_TIME (비밀번호 만료 유예 기간) 도 지나버린 다면 어떻게 될까요? ORA-28001: the password has expired 발생합니다. ORA-28001대해서는 다음 글에서 상세히 설명하였습니다.

ORA-28001: the password has expired (DB접속 에러)
ORA-28001: the password has expired 는 비밀번호 유효 기간이 만료되었을 때 출력 되는 에러 메시지입니다. 다음처럼 사용자 로그인 중에 ORA-28001가 표시되고 즉시 새로운 비밀번호를 ...
제목과 URL을 복사했습니다