본문 바로가기

Structured Query Language/SQLD

SQLD_2과목_2장 SQL 활용_7절 DCL, 8절 절차형 SQL

7절 DCL

DCL: 유저를 생성하거나 권한을 제어하는 명령어, 보안을 위해 필요함


   ⦁ GRANT: 권한 부여

GRANT 권한 ON 오브젝트 TO 유저명;


   ⦁ REVOKE: 권한 제거

REVOKE 권한 ON 오브젝트 TO 유저명;


권한(Privileges)
   ⦁ SELECT, INSERT, UPDATE, DELETE, ALTER, ALL : DML 관련 권한
   ⦁ REFERENCES : 지정된 테이블을 참조하는 제약조건을 생성하는 권한
   ⦁ INDEX : 지정된 테이블에서 인덱스를 생성하는 권한

 

Oracle의 유저
  ⦁ SCOTT: 테스트용 샘플 유저
  ⦁ SYS: DBA 권한이 부여된 최상위 유저
  ⦁ SYSTEM: DB의 모든 시스템 권한이 부여된 DBA

 

ROLE: 권한의 집합, 권한을 일일이 부여하지 않고 ROLE로 편리하게 여러 권한을 부여할 수 있음

 

Oracle의 ROLE

ROLE 권한
CONNECT CREATE SESSION
RESOURCE CREATE CLUSTER
CREATE PROCEDURE
CREATE TYPE
CREATE SEQUENCE
CREATE TRIGGER
CREATE OPERATOR
CREATE TABLE
CREATE INDEXTYPE

8절 절차형 SQL


절차형 SQL: 일반적인 개발언어처럼 절차지향적인 프로그램을 작성할 수 있도록 제공하는 기능


  ⦁ SQL문의 연속적인 실행 및 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈 생성 가능
  ⦁ PL/SQL (Oracle)
     - 블록 구조: 블록 내에 1) DML 2) 쿼리 3) IF나 LOOP 등을 사용할 수 있음
        ⦁ Declare(선언부): 블록에서 사용할 변수나 인수에 대한 정의
        ⦁ Begin(실행부): 처리할 SQL문 정의
        ⦁ Exception(예외 처리부): 블록에서 발생한 에러 처리 로직 정의, 유일한 선택 항목
   ⦁ T-SQL (SQL Server)
프로시저(Procedure)
사용자 정의 함수: 절차형 SQL을 로직과 함께 DB 내에 저장해 놓은 명령문 집합, RETURN을 통해 반드시 하나의 값 반환 (↔ 프로시저)
트리거(Trigger): DML문이 수행되었을 때 자동으로 동작하는 프로그램 (↔ 프로시저는 EXECUTE로 실행함), DCL와 TCL 실행 불가 (↔ 프로시저는 사용 가능함)