본문 바로가기

DB/Oracle

ORA-28001, 오라클 패스워드 만료

오라클은 계정에 대해 패스워드 유효기간을 정해놓습니다.

보통 기본이 180일로 설정되어 있으며, 이 기간이 지나기 까지 패스워드 변경이 없으면 해당 계정에 로그인 되지 않습니다.


해당 계정에 관한 정보는, DBA_USERS 라는 스키마에서 보실 수 있습니다.

간단하게 TEST1이라는 계정하나 만들고 살펴보겠습니다.

select username, account_status, lock_date, expiry_date, created, profile 

from dba_users where username='TEST1';

 

username : ID

account_status : 계정 상태

lock_date : 계정 잠긴 날짜

expiry_date : 계정 유효 날짜

created : 계정 생성 날짜

profile : 사용하는 프로파일 명

제가 이글을 작성하는 시점은 2016년 7월 8일 입니다.

그리고 그보다 180일 뒤인, 2017년 1월 4일까지 계정이 유효함을 보실 수 있습니다 (expiry_date)

유효기간 근처에 다가가면, 로그인할 떄 마다 경고창을 띄워줍니다. 계정 유효기간 얼마 안남았다고요.

그러다가 유효기간이 다되면

ORA-28001: the password has expired

ORA-28001: 비밀번호가 만기되었습니다

와 같은 오류가 발생합니다.


만료되자 마자 저렇게 오류가 발생하는건 아니고요, 패스워드 만료 기간 지나고 첫 로그인 시 유예기간을 줍니다.

기본은 7일입니다.

패스워드 유효기간이 7월 1일 까지였는데, 오늘 7월 8일에 로그인했을 경우

날짜가 지났으니 오늘 로그인한 날짜에서 유예기간을 더한, 7월 15일로 expiry_date가 변경됩니다.

유예기간까지 끝나고 나면 위와 같이 에러가 발생하며 로그인이 되지 않습니다.


이럴경우 간단히 패스워드를 변경해주면 패스워드 변경날짜 + 기본날짜(180)이 더해진 날짜가 expiry_date로 설정됩니다.

alter user 유저명 identified by 패스워드;

위와 같이 패스워드 변경 가능합니다.



프로필 변경

계정 생성하면 지정되는 유효기간 180일, 유예기간 7일..

기본값이라고 설명드렸었는데, 이것들도 수정 가능합니다.

처음에 DBA_USERS에서 유저정보를 조회할 때, profile이라는 컬럼도 조회했었습니다. 값은 DEFAULT가 나왔었죠.

즉, DEFAULT라는 이름을 가진 profile을 사용하겠다는 의미입니다.

profile에 대한 정보는 DBA_PROFILE에서 확인하실 수 있습니다.

DBA_PROFILE에서 패스워드 관련된 값들을 한번 보시죠.

select * from dba_profiles

where resource_type='PASSWORD';

FAILED_LOGIN_ATTEMPTS : 로그인 실패 가능 횟수

PASSWORD_LOCK_TIME : 암호가 사용기간 만료되어 계정이 잠겨진 채로 남아 있었던 일 수 (단위:일)

PASSWORD_LIFE_TIME : 패스워드 만료 기간(단위:일)

PASSWORD_GRACE_TIME : 패스워드 유예기간 (단위:일)

PASSWORD_REUSE_TIME : 이전 패스워드 재사용 가능 기간 (단위:일)

PASSWORD_REUSE_MAX : 이전 패스워드 재사용 가능 최대 횟수

PASSWORD_VERIFY_FUNCTION : 패스워드를 할당하기 전 복잡성 검사를 수행할 PL/SQL 함수 


프로필 변경은 아래와 같이 가능합니다.

ALTER PROFILE default LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LIFE_TIME UNLIMITED

PASSWORD_GRACE_TIME  10;

UNLIMITED로 무제한으로 설정해줄 수도 있습니다.



감사합니다~

'DB > Oracle' 카테고리의 다른 글

ORA-28000, 계정 잠금(Lock) 해제  (1) 2016.06.28
ORA-00918  (1) 2016.06.24
ORA-12081, 테이블 read only  (0) 2016.06.24
외래키 조회  (1) 2016.06.22
ORA-02292  (0) 2016.06.22