LANGUAGE/!$%!% ERROR NOTE 2015. 11. 24. 13:36

!markdown


### Error (에러)


ORA-28001: the password has expired


MMException: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory <ORA-28001: the password has expired>




### Problem (문제)

해당 DB의 Password expired(비밀번호 기간 만료)되었기 때문이다.




### Solved (해결)

Password expired 기능을 해제하면 된다.


- Query


1) 시스템계정으로 접속


2) DB의 유효만료기간 설정 확인 (RESOURCE_NAME이 PASSWORD_LIFE_TIME인 ROW의 LIMIT컬럼)

```sql

select * from dba_profiles where profile = 'DEFAULT';

```


3) DB의 유효만료기간 기능 제거

```sql

alter profile default limit password_life_time UNLIMITED;
```


4) 사용자상태 확인

```sql

select * from dba_users;

```


5) 사용자비밀번호 변경 (변경하면, 사용자상태(ACCOUNT_STATUS)가 OPEN으로 변한다.)

```sql

alter user {USER} IDENTIFIED BY {PASSWORD};

```


6) 다시 재확인 => 4)


- Toad


1) 메뉴에서 - [ Database ] - [ Schema Browser ] - 트리에서 Users를 펼치기 - 해당 DB를 선택 - 오른쪽 버튼으로 메뉴 열기 - [ Alter User ] - Password expired 체크박스 해제 - 암호 입력 후 - [ OK ]