본문 바로가기

SQL

SQLD 시험 대비 - SQL 활용편(3)

DCL : 유저 생성하고 권한을 제어할 수 있는 명령어 (Grant, Revoke)

Oracle과 SQL Server의 사용자 아키텍처 차이

 

Oracle : 유저를 통해 DB에 접속을 하는 형태, ID와 PW 방식으로 인스턴스에 접속을 하고 그에 해당하는 스키마에 오브젝트 생성 등의 권한을 부여받게 됨

 

SQL Server : 인스턴스에 접속하기 위해 로그인이라는 것을 생성하게 되며, 인스턴스 내에 존재하는 다수의 DB에 연결하여 작업하기 위해 유저를 생성한 후 로그인과 유저를 매핑해 주어야 한다.

Windows 인증 방식과 혼합 모드 방식이 존재함.

 

시스템 권한 :  사용자가 SQL문을 실행 하기 위해 필요한 적절한 권한 

 - Grant : 권한 부여  - Revode : 권한 취소 

Grant Create User To Scott ;

Revoke Create Table From emp;

 

모든 유저는 각각 자신이 생성한 테이블 외에 다른 유저의 테이블에 접근하려면 해당 테이블에 대한 오브젝트 권한을 소유자로부터 부여받아야 한다.

 

Role : 유저에게 알맞은 권한들을 한 번에 부여하기 위해 사용하는 것  < -> 사용자에게 권한 직접 부여

Create Role Login_Table;

Grant Create Table To Login_Table;

Drop Table Login_Table;

Cascade: 하위 오브젝트 까지 삭제 ( 연쇄 삭제 )

 

절차형 SQL : SQL문의 연속적인 실행ㅇ니나 조건에 따른 분기처리를 이용하여 트겆ㅇ기능을 수행하는 저장모듈을 생성할 수 있다. ( Procedure , UserDefined Function, Trigger)

 

저장 모듈 : PL/SQL 문장을 DB서버에 저장하여 사용자와 애플리케이션 사이에서 공유할 수 있도록 만든 일종의 SQL 컴포넌트 프로그램, 독립적으로 실행되거나 다른 프로그램으로부터 실행될 수 있는 완전한 실행 프로그램

 

PL/SQL 특징

1. Block구조로 되어있어 각 기능별로 모듈화 가능

2. 변수 상수 등을 선언하여 SQL문장 간  값을 교환

3. IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다.

4. DBMS 정의 에러나 사용지 정의 에러를 정의하여 사용할 수 있다.

5. PL/SQL 은 Oracle에 내장되어 있으므로 호환성이 좋다.

6. 응용프로그램의 성능을 향상한다.

7. Block 단위로 처리 -> 통신량을 줄일 수 있다.

 

Block 구조

1. Declare ( 옵션 ) : Begin~ End절에서 사용될 변수와 인수에 대한 정의 및 데이터 타입 선언부

2. Begin~End ( 필수 ) : 개발자가 처리하고자 하는 SQL문과 여러 가지 비교문, 제어문을 이용 필요한 로직 처리

3. Exception ( 옵션 ) : Begin~ End절에서 실행되는 SQL문이 실행이 안될 때 에러가 발생하면 그 에러를 어떻게 처리할지 정의하는 예외 처리부

 

T-SQL : 근본적으로  SQL-Server를 제어하는 Create Procedure schema_Name.Procedure_name

Trigger : 특정한 테이블에 Insert, Update, Delete와 같은 DML문이 실행되었을 때 자동으로 동작하도록 작성된 프로그램, 사용자 호출이 아닌 DB자동수행

 

 

프로시저 트리거
CREATE Procedure 문법사용 CREATE Trigger 문법사용
EXECUTE 명령어로 실행 생성 후 자동으로 실행
COMMIT, ROLLBACK 실행 가능 COMMIT, ROLLBACK 실행 안됨
반응형