SQL_PRIVILEGE 계정 관리 (2)
계정 관리_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 옵션을 부여해야하기 때문에 발생하는 에러
계정 관리 예제를 통해서 계정을 수정하고 삭제하는 과정에 대해 살펴보았습니다.
관리자로서 일반 사용자 계정을 관리하는 것은 중요한 업무이기 때문에 잘 알아두면 도움이 될 것 같습니다.