IT•개발 끄적/SQL

[SQL] 오라클 비밀번호 만료(ORA-28001: the password has expired)

소다맛사탕 2021. 4. 29. 21:27
반응형

안녕하세요. 소다맛사탕 입니다.

오늘은 어떤 글을 끄적여 볼까 하다가 데이터베이스를 접속했는데..

 

오라클 비밀번호 만료시

헐.....

 

비밀번호가 만료되었다는 오류메세지인 ORA-28001: the password has expired 가 떴습니다.

데이터베이스는 Oracle 11g Enterprise Edition Release 11.2.0.1.0을 쓰고 있는데요. 이게 이전에도 비밀번호 만료가 되었었는데...

이 데이터베이스 버전은 기본 프로필이 180일 지나면 비밀번호가 만료 되도록 변경 되었다 하네요.

 

깜빡하고 있었어요.

 

비밀번호가 만료되면 비밀번호를 변경해줘야 하는데 기본적으로 데이터베이스 툴에서 변경하는 방법은 씨알도 안먹힙니다.

툴에서 비밀번호 변경시1
툴에서 비밀번호 변경시2

보시는 것과 같이 툴에서 비밀번호 변경시 변경이 안됩니다. 똑같이 ORA-28001: the password hs expired 오류가 발생!

자 그럼 다른 방법으로 비밀번호를 바꿔볼까요?

 

1. 우선 cmd창을 킵니다.

SYSTEM 계정 비밀번호 변경

이와 같이 cmd창에서

> sqlplus 사용자명(영문) / 기존비번

을 입력시 똑같은 ERROR : ORA-28001: the password has expired 가뜨는데

데이터베이스 툴에서와 마찬가지로 새비밀번호를 입력하는게 뜹니다.

새 비밀번호 입력시 접속은 되지만 실제로 접속이 된게 아닙니다.

 

2. 사용자 암호를 변경 할 경우(자기자신 또는 SYS 계정)
SQL> ALTER USER 사용자명(영문) IDENTIFIED BY "암호";

이런 커멘드를 적어야 다시 비밀번호가 변경되고 재사용 가능한 데이터베이스 환경이 갖추어집니다.

 

※ 만료일 및 계정 상태를 확인하려면

cmd 창

> sqlplus /"as sysdba"

접속후 

> select * from dba_users where username = '사용자명(영문대문자)';

... 만료일(expiry_date), 계정 상태(username, account_status) 를 확인할 수 있습니다.