[SQL] DCL(데이터 제어어)
Data Control Language
- 특정 사용자의 권한을 제어할 수 있는 명령어
- 데이터베이스에 존재하는 데이터의 보호와 보안을 위해 유저의 권한을 관리하기 위해 사용
- DDL문의 일종으로서 커밋 혹은 롤백이 필요없이 실행하는 순간 적용
GRANT
: 권한 부여REVOKE
: 권한 회수
GRANT
- 사용자에게 권한을 부여할 때 사용
GRANT 권한 [ON 테이블명] TO 사용자명;
GRANT CREATE SESSION TO SERIM; -- SERIM 사용자에게 접속권한 부여 GRANT CREATE TABLE TO SERIM; -- 사용자에게 테이블생성 권한 부여 GRANT SELECT ON TB_A TO SERIM; -- 사용자에게 TB_A 테이블의 조회 권한 부여 GRANT INSERT, DELETE, UPDATE ON TB_A TO SERIM; -- 사용자에게 테이블 DML 권한 부여
REVOKE
- 사용자의 권한을 회수할 때 사용
REVOKE 권한 [ON 테이블명] FROM 사용자명;
REVOKE SELECT ON TB_A FROM SERIM; -- 사용자에게 테이블 조회권한 회수 REVOKE INSERT, DELETE, UPDATE ON TB_A FROM SERIM; -- 사용자에게 테이블 DML 권한 회수 REVOKE CREATE TABLE FROM SERIM; -- 사용자에게 테이블 생성권한 회수 REVOKE CREATE SESSION FROM SERIM; -- 사용자에게 접속권한 회수
ROLE
-
DBMS 사용자를 생성하면 기본적으로 많은 권한을 부여해야 한다.
-
많은 DBMS 에서는 DBMS 관리자가 사용자별로 권한을 관리해야 하는 부담과 복잡함을 줄이기 위해 다양한 권한을 그룹으로 묶어 관리할 수 있도록 사용용자와 권한 사이에서 중개 역할을 수행하는
ROLE
을 제공한다.CREATE ROLE CREATE_USER; -- CREATE_USER에 역할 생성 GRANT CREATE SEESION, CREATE TABLE TO CREATE_USER; -- 역할에 권한 부여 GRANT CREATE_USER TO SERIM; -- SERIM에 CREATE_USER 역할 부여
-
대표적인 ROLE (ROLE명 : 부여 권한)
CONNECT
: CREATE SESSIONRESOURCE
: CREATE CLUSTER, PROCEDURE, TYPE, SEQUENCE, TRIGGER, OPERATOR, TABLE, INDEXTYPE
사용자 계정 제거 와 재생성
DROP USER SERIM CASCADE; -- 사용자와 함께 생성한 테이블도 같이 제거
CREATE USER SERIM IDENTIFIED BY 1234; -- 사용자 생성
GRANT CONNECT, RESOURCE TO SERIM; -- 사용자에게 권한 부여
댓글남기기