Data Base_Oracle/SQL
SQL_PRIVILEGE 개요 & 계정 관리 (1)
pathas
2020. 1. 10. 16:41
Privilege_권한
관리자로부터 부여받는 계정별 작업 가능 범위
Privilege 종류
- 시스템 권한 : 관리자가 주로 작업
ex) 계정 관리(생성, 수정, 삭제), 공용 동의어 생성 등 - 객체 권한 : 각 계정별로 관리
ex) 테이블, 뷰, 시퀀스 사용 권한
SYSTEM PRIVILEGE _ DATA DICTIONARY
※ system_privilege_map
일반 계정에서는 조회가 불가능하며 시스템 권한의 종류가 담겨있는 Oracle 자체 테이블
PRIVILEGE | NAME | PROPERTY |
---|---|---|
-3 | ALTER SYSTEM | 0 |
-4 | AUDIT SYSTEM | 0 |
-5 | CREATE SESSION | 0 |
... | ... | ... |
SYSTEM PRIVILEGE 종류
권한 | 설명 |
---|---|
CREATE SESSION | 로그인 권한 |
CREATE USER | 계정 생성 권한 |
ALTER USER | 계정 변경 권한 : 암호변경, 만료, lock / unlock, etc. |
DROP USER | 계정 삭제 권한 |
CREATE TABLE | 테이블 생성 권한, resource 대신 사용할 수 있음, alter table, drop table이 동시에 부여됨 |
CREATE SYNONYM | 동의어 생성 권한 |
SYSDBA | 관리자의 모든 권한 집합, *ROLE |
권한 | 설명 |
---|---|
CREATE PUBLIC SYNONYM | 공용동의어 생성 권한 |
DROP PUBLIC SYNOYNYM | 공용동의어 삭제 권한 |
CREATE VIEW | 뷰 생성 권한 |
CREATE ROLE | *ROLE 생성 권한 |
*ROLE : 권한들이 들어가 있는 그룹
ex) create session은 connect에 포함되어 있는데, connect는 role이라고 함
※ 일반적으로 ~ create 권한에 alter와 drop이 포함되어 있음
계정 관리_SYSTEM PRIVILEGE
PASSWORD EXPIRE _ 계정 비밀번호 만료
생성한 계정이 로그인할 때 암호를 재설정할 수 있도록 하는 조치
§ 형식
[ SQL> alter user 계정명 password expire; ]
※ 부여한 암호가 만료되도록 하는 것
# 예제
▶ hong/h1234 로 만든 계정에 기간 만료 설정
[ SQL> alter user hong password expire;
사용자가 변경되었습니다. ]
▷ hong/h1234로 로그인
[ SQL> conn hong/h1234
ERROR:
ORA-28001: the password has expired
hong에 대한 비밀번호를 변경합니다.
새 비밀번호: 1234
새 비밀번호 다시 입력: 1234
비밀번호가 변경되었습니다.
연결되었습니다. ]
※ ORA-28001 :해당 암호의 기간이 만료됐기 때문에 발생하는 에러
※ 비밀번호를 입력해도 화면에는 표시되지 않기 때문에 주의해야 함
데이터베이스를 관리하기 위해서는 계정마다 적절한 권한을 부여하는 것이 아주 중요하기 때문에
권한과 앞으로 다룰 ROLE에 대해 자세히 이해하는 것이 필요하겠습니다.