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 실행 안됨 |
'SQL' 카테고리의 다른 글
SQLD 시험 대비 - Group By, Join (2) (0) | 2023.03.16 |
---|---|
SQLD 시험 대비 - Group By, Join (1) (0) | 2023.03.16 |
SQLD 시험 대비 - SQL 활용편(3) (0) | 2023.03.08 |
SQLD 시험 대비 - SQL 활용편(2) (0) | 2023.03.07 |
SQLD 시험 대비 - SQL 활용편(1) (0) | 2023.03.06 |