Data Base_Oracle/SQL

SQL_PRIVILEGE 계정 관리 (2)

pathas 2020. 1. 10. 16:51

계정 관리_SYSTEM PRIVILEGE

ACCOUNT LOCK | UNLOCK _ 계정 잠금

임시로 휴직, 퇴직한 경우에 계정을 사용하지 못하도록 설정
→ 계정을 삭제하면 다시 생성해야하기 때문에 잠궈두는 것이 편리함

§ 형식

▶ 계정을 이미 사용한 적이 있는 경우
[ SQL> alter user 계정명 account lock | unlock; ]

 

※ 관리자 계정으로만 사용 가능
lock : 계정 잠금
unlock : 계정 잠금 해제

 

▶ 계정을 한 번도 사용하지 않은 경우
[ SQL> alter user 계정명 identified by 비밀번호 account unlock password expire ; ]

 

※ password expire를 같이 작성할 수 있음

# 예제 _ UNLOCK

▷ Oracle 설치시 LOCK을 해제하지 않은 hr계정으로 로그인
[ SQL> conn hr/hr1234
ERROR:
ORA-28000: the account is locked ]

 

※ 계정이 잠겨있기 때문에 발생하는 에러

 

▶ hr 계정 잠금 해제
[ SQL> alter user hr identified by hr1234 account unlock password expire;
사용자가 변경되었습니다. ]

 

▷ hr 계정으로 로그인
[ SQL> conn hr/hr1234
ERROR:
ORA-28001: the password has expired

hr에 대한 비밀번호를 변경합니다.
새 비밀번호:
....
연결되었습니다. ]

hr 계정 구조 / 내용

▷ [ 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  

# 예제 _ LOCK

▷ hr계정에서 hong 계정을 잠금
[ SQL> alter user hong account lock;
1행에 오류:
ORA-01031: insufficient privileges ]

 

※ hr계정에는 계정 관리 권한이 없기 때문에 발생하는 에러

 

▶ 관리자계정에서 hong 계정 잠금
[ SQL> alter user hong account lock;
사용자가 변경되었습니다. ]

 

▷ hong 계정으로 로그인
[ SQL> conn hong/1234
ERROR:
ORA-28000: the account is locked ]

계정 삭제

§ 형식

▶ 아무런 작업도 수행하지 않은 계정의 경우
[ SQL> drop user 계정명; ]

 

▶ 작업 내용이 있는 계정의 경우
[ SQL> drop user 계정명 [cascade]; ]

 

※ cascade 옵션을 부여하면 해당 계정의 작업 내역까지 전부 삭제

# 예제

▶ hong 계정 삭제 _ 작업 내용 X
[ SQL> drop user hong;
사용자가 삭제되었습니다. ]

 

▷ test 계정 삭제 _ 작업 내용 O
[ SQL> drop user test;
1행에 오류:
ORA-01922: 'TEST'(을)를 삭제하려면 CASCADE를 지정하여야 합니다 ]

 

※ 작업 내용이 있는 경우 cascade 옵션을 부여해야하기 때문에 발생하는 에러


계정 관리 예제를 통해서 계정을 수정하고 삭제하는 과정에 대해 살펴보았습니다.

관리자로서 일반 사용자 계정을 관리하는 것은 중요한 업무이기 때문에 잘 알아두면 도움이 될 것 같습니다.