티스토리 뷰
오라클 데이터베이스를 무료로 사용할 수 있는 개발자 버전 XE를 사용하다보면 갑자기 아래와 같은 메시지를 뿌리면서 접속이 않되는 경우가 있습니다.
ORA-28001: the password has expired
Cause: The user’s account has expired and the password needs to be changed
이유는 비밀번호의 유효 기간이 실제로 만료되어서 발생하는 현상으로 보안을 위해서 사용자가 주기적으로 비밀번호를 바꾸도록 유도하기 위한 장치입니다. PASSWORD_LIFE_TIME 변수를 통해서 비밀번호 유효 기간을 시스템레벨로 관리하는데 오라클 10g 버전 까지는 기본값이 무제한 이었지만 11g부터는 아래의 그림과 같이 기본값이 180일로 설정되어 있습니다.
PASSWORD_LIFE_TIME값을 조회하려면 위의 그림과 같이 "SELECT resource_name,limit FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';" 질의를 사용하면 됩니다.
비밀번호 유효기간 제한을 없애려면 아래와 같은 질의를 관리자로 로그인해서 수행하면 됩니다.
alter profile default limit password_life_time unlimited;
이미 비밀번호 유효기간이 지난 아이디의 제한을 해제하려면 관리자로 로그인해서 비밀번호를 아래와 같은 질의로 재설정해야 합니다.
ALTER USER SYSTEM IDENTIFIED BY SYSPASS;
아이디에 락(Lock)이 걸린 상태라면 아래의 질의로 해결할 수 있습니다.
ALTER USER SYSTEM ACCOUNT UNLOCK;
락이 걸려있거나 비밀번호 유효기간이 지난 아이디를 조회하는 방법은 다음의 질의를 사용합니다.
select username, account_status from dba_users where ACCOUNT_STATUS LIKE '%EXPIRED%';
질의 결과를 보면 비밀번호 유효기간 만료와 락이 모두 걸려있는 것을 확인할 수 있습니다.
위에서 언급한 여러 질의를 사용하려면 관리자로 로그인해야 하는데 윈도우 버전 오라클 XE에서는 일단 프로그램메뉴에서 "Run SQL Command Line"를 선택합니다.
SQL*Plus가 가동되면 "connect / as SYSDBA"로 관리자 로그인을 할 수 있습니다.
'IT 일반' 카테고리의 다른 글
데이터베이스 페이징 다루기 - MySQL, SQL Server, Oracle (0) | 2015.10.23 |
---|---|
데이터베이스간 일자시간 타입 전환 - MySQL, SQL Server, Oracle (0) | 2015.10.22 |
테이블/컬럼 존재 여부 확인하기 - MySQL, SQL Server, Oracle (0) | 2015.10.14 |
TortoiseGit 편집과 취소, 커밋 (0) | 2015.10.13 |
토터스깃으로 프로젝트 시작하기 (0) | 2015.10.06 |