1. 권한의 정의
특정 사용자가 가지는
- Oracle 서버에 연결, User와 DB Object를 생성, 삭제하는 특정 SQL 문을 실행할 수 있는 System 유형의 권한
- 기존 특정 DB Object에 대해 특별히 명세하는 접근만 할 수 있는 Object 유형의 권한
2-1. 시스템 권한(System Privileges)
GRANT [system_privilege_name | role_name]
TO [user_name | role_name | PUBLIC] [WITH ADMIN OPTION]
REVOKE [system_privilege_name | role_name]
FROM [user_name | role_name | PUBLIC]
TO Public을 통해 모든 사용자들에게 권한을 한 번에 부여할 수 있다.
WITH ADMIN OPTION을 통해 부여받은 권한을 다시 다른 사용자들에게 부여하는 것도 가능하다.
2-2. 객체 권한(Object Privileges)
객체 권한은 객체 유형에 따라 다르기에 해당 표를 참조하여 부여할 수 있다.
GRANT [object_privilege_name | all] ([column_name])
ON [schema_name.] object_name
TO [user_name | role_name | PUBLIC] [WITH GRANT OPTION]
REVOKE object_privilege_name ON [schema_name.] object_name
FROM [user_name | role_name | PUBLIC] [CASCADE CONSTRAINTS]
WITH GRANT OPTION은 부여받은 객체 권한을 다시 다른 사용자들에게 부여하는 것도 가능하다.
CASCADE CONSTRAINTS는 객체 권한에서 사용된 참조 무결성 제약을 같이 삭제할 수 있다.
SELECT * FROM [DBA_TAB_PRIVS | DBA_COL_PRIVS]
WHERE OWNER = 'USERNAME'; // 조회
3. 롤(ROLE)
롤은 사용자에게 부여할 권한들의 집합이며 이름을 가진다.
CREATE ROLE role_name
[NOT IDENTIFIED | IDENTIFIED BY [password | EXTERNALLY]]
① ROLE의 생성 : CREATE ROLE db_manager
② ROLE에 시스템 권한 부여 : GRANT create session, create table, create view TO db_manager
③ ROLE을 사용자 또는 다른 ROLE에게 부여 : GRANT db_manager TO ycpark, system_manager
4. 시노님(Synonym)
소유한 객체에 대해 다른 이름을 부여한 것을 시노님이라고 한다.
긴 객체 이름에 대하여 짧은 이름을 붙여 사용할 수 있어 효율적으로 접근 가능.
CREATE SYNONYM kd_emp FOR kdhong.emp;
CREATE SYNONYM ex_emp FOR excellent_employee_table;
CREATE PUBLIC SYNONYM emp FOR jmil.emp;
DROP SYNONYM kd_emp;
5. 시퀀스(Sequence)
자동으로 유일한 순차값을 생성하는 DB Object이다.
주로 기본키의 값을 생성할 때 사용한다.
CREATE SEQUENCE sequence_name
[ INCREMENT BY n ] // 증가값
[ START WITH n ] // 시작 값
[ MAXVALUE n | NOMAXVALUE ] // 최대값
[ MINVALUE n | NOMINVALUE ] // 최소값
[ CYCLE | NOCYCLE ] // 최대 최소 도달 시 계속 진행여부(NO 기본)
[ CACHE n | NOCACHE ] // 메모리에 캐시저장(접근속도)
사용 예시
CREATE SEQUENCE emp_seq
INCREMENT BY 1
START WITH 1
MAXVALUE 100000
NOCACHE
NOCYCLE;
"시작 값이 1이고 1씩 증가하고, 최대값이 100000이 되는 시퀀스를 생성"
INSERT INTO emp(eid, ename, did) VALUE(emp_seq.NEXTVAL, ‘jmil’, 2);
"eid는 컬럼값을 입력할 때 일일이 다음 값을 기억하지 않아도 NEXTVAL을 사용하여 자동으로
입력할 수 있다"
"CURRVAL : 현재 값을 반환한다.
NEXTVAL : 현재 시퀀스의 다음 값을 반환한다."
'Archived(CSE Programming) > Database(Oracle)' 카테고리의 다른 글
Chap 7. PL/SQL (0) | 2019.11.27 |
---|---|
Chap 6. JDBC (0) | 2019.11.27 |
Chap 5-4. DataBase 뷰(View) (1) | 2019.11.12 |
Chap 5. SQL (0) | 2019.10.22 |
Chap 3. Table Index & B+tree (0) | 2019.10.22 |