IT 관련,,/데이터베이스(sql)

[SQL/Oracle]ora-28000, 계정이 잠금되었습니다~

IT깡패's 2018. 9. 19. 20:32
728x90
반응형
SMALL


ora-28000, 계정이 잠금되었습니다(the account is locked)!


* 계정 락(lock) 해제에 관한 추가 링크 

계정 락(lock) 해제 설명 - http://sky17777.tistory.com/9?category=830651


보통 oracle에서 이 오류가 났을 때, 해결 방법은 간단합니다.


- 해결방법 

1. 계정 상태를 확인한다.

SELECT * FROM EMP;

2. LOCK 해제를 시킨다.

ALTER USER [사용자명] ACCOUNT UNLOCK;

3. 계정 비밀번호를 변경한다.

ALTER USER [사용자명] identified by [새로운 비밀번호]


이 방법을 쓰면 보통 오라클에서는 락해제가 되면서 이런 오류가 안생기게 됩니다.

하지만 다른 sql종류인 Orange Oracle 또는 Toad Oracle등의 쿼리에서는 이런 간단한 문제로 해결할 수가 없습니다.

요새 si개발로 파견된 회사에서 사용하는 DB는 Orange Oracle를 사용하고 있습니다.

Orange Oracle은 Oracle과 비교해서 메뉴나 쿼리등록등의 사용법은 다르지만 쿼리쪽의 sql문은 Oracle과 비슷한 부분이 많아서 Oracle에서 

사용한 것들을 응용해서 사용할 수 있습니다.

아무튼 Orange Oracle에서 이 오류가 발생하였는데, 원인이 이와 비슷하였으나 해결 방법이 달랐습니다.

원래 cmd를 활용해서 이 정도로 입력해서 사용하면 되었지만,, 제가 하는 프로젝트에서는 일단 사용자계정이 비밀번호가 만료되어서 생기는 

문제였으며, 사용자 계정 비밀번호가 만료되었기 때문에 사용자 계정을 바꾸거나 새 비밀번호를 입력하면 되는 문제였습니다.


위쪽 보통 오라클에서의 해결방법 중에 빠진 쿼리문을 집어넣어보겠습니다~!!

SQL> show user;
USER is "회사사용계정명"(또는 "C***")

SQL> SELECT USERNAME, ACCOUNT_STATUS,
                     TO_CHAR(LOCK_DATE, 'YYYY-MM-DDHH24:MI') LOCK_DATE, PROFILE

                     FROM  DBA_USERS;

이와 같은 SELECT를 해보면 계정들의 상태를 확인 할수 있습니다. (OPEN, LOCKED, EXPIRED & LOCKED)


회사사용계정의 잠금해제는 당연히,,

SQL> ALTER USER 회사사용계정 ACCOUNT UNLOCK;

정상적으로 update하였더니 회사사용계정의 lockdown풀리게 되었습니다.

이전의 비밀번호를 잊어버려서 알아내려면 알아낼수는 없지만, 콘솔로 접속하여 변경은 가능합니다.


토드나 기타의 DB클라이언트로는 안되며, 서버의 로컬에서 Orange Oracle이 설치되어있는 디렉토리의 bin 디렉토리에서 콘솔을 띄운후,,

Oracle에서와 같이 sqlplus "/ as sysdba" 또는 sqlplus "회사사용계정 as sysdba" 라고 입력한후 암호를 입력하라고 할때, 엔터치면 

로그인이 되게 됩니다.

SQL> alter user 회사사용계정 identified by 비밀번호


이렇게 입력했더니 위의 계정의 비밀번호를 변경하여 다시 예전처럼 DB를 사용할 수 있게 되었습니다.

오라클에서 발생하는 db오류들은 정말 많기 때문에 나올 때마다 체크하고 넘어가도록 하는 것이 좋습니다!

그리고 오라클 뿐만 아니라 기타 DB 도구에서도 많이 볼 수 있습니다. 

가끔 관리자 계정으로 쿼리문들을 응용해서 사용하다보면 색다른 재미를 느끼게 되는 것 같습니다~

계정 관리 혹은 락해제 하는 것은 오류가 나왔을 때 즉각 사용할 수 있도록 익혀두면 좋습니다~ 

728x90
반응형
LIST