본문 바로가기
Oracle/Privilege

데이터 베이스_ 오라클 [사용자 권한 제어] Lock, Unlock

by Super Santj 2019. 7. 4.

문제 _

계정을 사용중인 직원이 퇴사를 했다거나, 잠시 휴가를 가는 경우 그 계정을 임시로, 사용하지 못하게 한다면 어떻게 해야하는가? (현재 scott, hr 계정이 락이 걸려있는 상태)

SQL> conn hr/hr1234
ERROR:
ORA-28000: the account is locked


경고: 이제는 ORACLE에 연결되어 있지 않습니다.

해설_

우선 관리자 계정으로 로그인을 한다.

SQL> conn sys/sys12345 as sysdba
연결되었습니다.

형식에 맞게 아래의 명령어를 입력하면 락이 걸리거나, 락이 해제된다.

alter user 락을풀어줄계정명 account unlock

alter user 락을걸어줄계정명 account lock

**중요**

보통 락이 걸려있는 경우는 1. 퇴사를 하였거나 2. 다른 부서로 발령받아서 간 경우 임시로 사용을 못하게 막아놓는 것이다.

**중요**

해설2_

또 다른 방식으로는 락을 풀어줌과 동시에 새로운 암호를 부여할수있는 구문이다.

alter user 락을풀어줄계정명 identified by 새 암호 account unlock

우선 시스템 계정으로 로그인한뒤 형식에 맞게 구문을 입력하면 아래와 같은 결과가 나온다. 

SQL> conn sys/sys12345 as sysdba
연결되었습니다.
SQL> alter user hr identified by hr1234 account unlock;

사용자가 변경되었습니다.

그리고 hr 계정으로 로그인을 해보고 맡은 업무가 어떻게 되는지 확인해보자.

SQL> conn hr/hr1234
연결되었습니다.
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
COUNTRIES                      TABLE
DEPARTMENTS                    TABLE
EMPLOYEES                      TABLE
EMP_DETAILS_VIEW               VIEW
JOBS                           TABLE
JOB_HISTORY                    TABLE
LOCATIONS                      TABLE
REGIONS                        TABLE

8 개의 행이 선택되었습니다.

실행됨을 확인하였으니 다시 원위치를 한다는 의미로 hr 계정에 락을 걸어준다.

SQL> show user
USER은 "SYS"입니다
SQL> alter user hr account lock;

사용자가 변경되었습니다.

완벽히 락이 걸렸다.

댓글