DCL 개요
1. DCL 유형
데이터 베이스에서 데이터 이외의 오브젝트에 대해 조작할 때 사용하는 명령어 이다.
DCL 조작 대상
오브젝트 | 목적 | 내용 |
사용자 권한 | 접근 통제 | 사용자를 등록하고, 사용자에게 특정 데이터베이스를 사용할 수 있는 권리를 부여하는 작업 |
트랜잭션 | 안전한 거래 보장 | 동시에 다수의 작업을 독립적으로 안전하게 처리하기 위한 상호 작용 단위 |
트랜잭션 제어를 위한 명령어 TCL(Transaction Control Language)이 있다. TCL과 DCL은 대상이 달라 서로 별개의 개념으로 분류할 수 있으나, 제어 기능의 공통점으로 DCL의 일부로 분류하기도 한다.
DCL 명령어
DCL
- GRANT - 데이터베이스 사용자 권한 부여
- REVOKE - 데이터 베이스 사용자 권한 회수
TCL
- COMMIT - 트랜잭션 확정
- ROLLBACK - 트랜잭션 취소
- CHECKPOINT - 복귀지점 설정
DCL 활용
1. 사용자 권한 부여
권한은 시스템 권한과 객체 권환으로 분류한다
권한 | 명령어 문법 |
시스템 권한 | GRANT 권한1, 권한2, TO 사용자 계정 |
객체 권한 | GRANT 권한1, 권한2, ON 객체명 TO 사용자 계정 |
구분 | 권한 | 내용 |
시스템 권한 | CREATE USER | 계정 생성 권한 |
DROP USER | 계정 삭제 권한 | |
DROP ANY TABLE | 테이블 삭제 권한 | |
CREATE SESSION | 데이터베이스 접속 권한 | |
CREATE TABLE | 테이블 생성 권한 | |
CREATE VIEW | 뷰 생성 권한 | |
CREATE SEQUENCE | 시퀀스 생성 권한 | |
CREATE PROCEDURE | 함수 생성 권한 | |
객체 권한 | ALTER | 테이블 변경 권한 |
INSERT | 데이터 조작 권한 | |
DELETE | ||
SELECT | ||
UPDATE | ||
EXECUTE | PROCEDURE 실행 권한 |
2. 사용자 권한 회수
GRANT에 대응하는 권한 회수 명령은 REVOKE이며, 권한 유형별 대응하는 명령어 구조는 다음과 같다
시스템 권한 - REVOKE 권한1, 권한2, FROM 사용자 계정
객체 권한 - REVOKE 권한1, 권한2 ON 객체명 FROM 사용자 계정
DCL 이론적 배경인 접근 통제
1. 접근 통제 개념
데이터베이스의 보안을 구현하는 방법으로 접근 통제 방법을 사용한다
접근 통제 정의
- 보안 정책에 따라 접근 객체(시스템 자원, 통신자원 등)에 대한 접근 주체(사용자, 프로세스 등)의 접근 권한 확인 및 이를 기반으로 한 접근 제어를 통해 자원에 대한 비인가된 사용을 방지하는 정보 보호 기능
2. 접근 통제 정책에 따른 유형
임의 접근 통제
- 시스템 객체에 대한 접근을 사용자 개인 또는 그룹의 식별자를 기반으로 제한하는 방법
- 여기서 임의적이라는 말은 어떤 종류의 접근 권한을 갖는 사용자는 다른 사용자에게 자신의 판단에 의해서 권한을 줄 수 있다는 것임.
- 주체와 객체의 신분 및 임의적 접근 통제 규칙에 기초하여 객체에 대한 주체의 접근을 통제하는 기능
임의 접근 통제 의미
- 통제 권한이 주체에 있음
- 주체가 임의적으로 접근 통제 권한을 배분하여 제어할 수 있음.
강제 접근 통제
- 정보 시스템 내에서 어떤 주체가 특정 객체에 접근하려 할 때 양쪽의 보안 레이블에 기초하여 높은 보안 수준을 요구하는 정보가 낮은 보안 수준의 주체에게 노출 되지 않도록 접근을 제한하는 통제 방법
강제 접근 통제 의미
- 통제 권한이 제3자에게 있음.
- 주체는 접근 통제 권한과 무관함.
3. 접근 통제와 DCL 관계
강제 접근 통제의 경우, 제3자의 종류에 따라 보다 세분화된 정책이 존재한다. 접근 통제 정책의 두 가지 가운데 데이터베이스관리시스템(DBMS)에서 채택한 접근 통제 정책은 임의 접근 통제, DAC 방식이다. 데이터베이스 관리, 특히 접근 통제 용도로 SQL에서 사용하는 명령어가 바로 DCL인 것이다.
TCL 활용 방법
1. 트랜잭션 개념
- 트랜잭션은 '일 처리 단위'를 의미한다.
- 트랜잭션은 논리적 연산 단위이다.
- 한 개 이상의 데이터 베이스 조작이다.
- 즉, 하나 이상의 SQL 문장이 포함된다.
- 트랜잭션은 '거래'다.
- 이때 거래 결과가 모두 반영되거나 또는 모두 취소되어야 한다.
- 즉, 데이터베이스에서의 트랜잭션은 특별한, 엄격한 거래를 의미한다.
- 분할할 수 없는 최소 단위이다.
2. 트랜잭션 제어
트랜잭션을 제어한다는 것은 흐름의 구조를 바꾼다는 것이 아니라 트랜잭션의 결과를 수용하거나 취소하는 것을 의미한다.
COMMIT - 거래 내역을 확정함.
ROLLABCK - 거래내역을 취소함.
CHECKPOINT - 저장점 설정 - ROLLBACK할 위치를 지정함
'정보처리산업기사 필기 공부 > SQL_활용' 카테고리의 다른 글
뷰 활용(SQL_활용) (0) | 2020.04.19 |
---|---|
인덱스 활용(SQL_활용) (0) | 2020.04.19 |
데이터 사전 검색(SQL_활용) (0) | 2020.04.19 |
DML (SQL_활용) (0) | 2020.04.19 |
DDL (SQL_활용) (0) | 2020.04.16 |