archive
[SQLD] DCL 사용과 TCL 사용 본문
1) DCL
1-1) GRANT문
GRANT 문은 데이터베이스 사용자에게 권한을 부여한다
데이터 베이스 사용을 위해서는 권한이 필요하며 연결, 입력, 수정, 삭제, 조회를 할 수 있다
권한의 종류에는 SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, INDEX, ALL 등이 있다.
위의 권한 중 부여하고자 하는 권한을 위 코드의 previleges 부분에 작성하고 object는 테이블 명이며 user은 권한을 부여하고자 하는 오라클 데이터베이스 사용자의 이름이다
WITH GRANT OPTION은 특정 사용자에게 권한을 부여할 수 있는 권한을 부여하는 것
권한을 A 사용자가 B에게 부여하고 B가 다시 C를 부여한 후에 권한을 취소(REVOKE) 하면 모든 권한이 회수된다
WITH ADMIN OPTION은 테이블에 대한 모든 권한을 부여하는 것
권한을 A 사용자가 B에 부여하고 B가 다시 C에게 부여한 후에 권한을 취소 (REVOKE) 하면 B 사용자 권한만 취소된다.
1-2) REVOKE
REVOKE문은 데이터 베이스 사용자에게 부여된 권한을 회수한다
2) TCL
2-1) COMMIT 문
COMMIT은 INSERT, DELETE, UPDATE문으로 변경한 데이터를 데이터베이스에 반영한다
변경 이전의 데이터는 잃어버리게 되며 새로운 데이터를 원본 데이터베이스에 반영하여 적용한다
다른 모든 데이터베이스 사용자는 변경된 데이터를 볼 수 있다.
COMMIT이 완료되면 데이터 베이스 변경으로 인한 LOCK이 해제된다 (UNLOCK)
COMMIT이 완료되면 다른 모든 데이터 베이스 사용자는 변경된 데이터를 조작할 수 있다
COMMIT을 실행하면 하나의 트랜잭션 과정을 종료한다
ORACLE 데이터 베이스는 암시적 트랜잭션 관리를 한다
즉, ORACLE 데이터베이스로 트랜잭션을 시작하고, 트랜잭션의 종료는 ORACLE 데이터 베이스 사용자가 COMMIT 혹은 ROLL-BACK으로 처리해야한다
2-2) ROLLBACK문
ROLLBACK을 실행하면 데이터에 대한 변경 사용을 모두 취소하고 트랜잭션을 종료한다
이전의 COMMIT한 곳까지만 복구한다
실행 시 LOCK이 해제되고 다른 사용자도 데이터 베이스 행을 조작할 수 있다
2-3) SAVEPOINT (저장점)
SAVEPOINT는 트랜잭션을 작게 분할하여 관리하는 것으로, SAVEPOINT를 사용하면 지정된 위치 이후의 트랜잭션만 ROLLBACK 할 수 있다
SAVEPOINT의 지정은 SAVEPOINT<SAVEPOINT이름>을 실행하면 된다
지정된 SAVEPOINT까지ㅏㅁㄴ 데이터 변경을 취소하고 싶은 경우는 ROLLBACK TO <SAVEPOINT 이름>을 실행한다
위와 같은 명령을 실행하면 t2 이후의 작성 내용은 모두 취소되고 t1과 t2 사이의 10, 20 값만 정상적으로 커밋되어 조회된다.
'Data > SQLD 필기 준비' 카테고리의 다른 글
[SQLD] 조인 (Join) (0) | 2023.11.14 |
---|---|
[SQLD] WHERE문 사용 및 GROUP 연산 (0) | 2023.11.12 |
[SQLD] DML (Data Manipulation Language) 사용 (0) | 2023.11.11 |
[SQLD] DDL (Data Definition Language) 사용 (0) | 2023.11.11 |