Cherry & Cherish

[SQL] DCL과 TCL 본문

Programming/SQL

[SQL] DCL과 TCL

앵도라지 2023. 2. 6. 20:25

앞서, DDL, DML에 대해 정리했다.

데이터베이스의 구조와 테이블에서 데이터를 입력하고 수정하고 삭제하고 조회하는 등의 추출 과정을 마쳤다.

 

그렇다면, 사용자에게 권한을 부여하거나 회수하려면 어떻게 해야 할까? 혹은 변화된 값을 실제 테이블에 반영하기 위해서는 어떻게 해야 할까?

 

이를 해결하기 위해서는 DCL과 TCL을 알아야 한다.

 

DCL과 TCL까지 모두 알게 된다면 SQL을 마스터한 것이다!

 

 

 

1. DCL

사용자에게 권한을 부여하거나 회수하는 등의 접근 제어를 담당하는 언어를 Data Control Language, DCL이라고 한다.

1) GRANT

  • GRANT문은 데이터베이스 사용자에게 권한을 부여한다.
  • 데이터베이스 사용을 위해서는 권한이 필요하며 연결, 입력, 수정, 삭제, 조회를 할 수 있다.
GRANT SELECT, INSERT, UPDATE, DELETE ON EMP TO 유저이름
#유저이름이라는 사용자에게 EMP 테이블에 대해서 SELECT, INSERT, UPDATE, DELETE 권한을 부여한다.
  • 부여할 수 있는 권한으로는 SELECT, INSERT, UPDATE, DELETE, REFERENCES(제약조건 생성권한), ALTER(수정), INDEX(인덱스 생성), ALL 등이 있다.
  • WITH GRANT OPTION
    • 권한을 부여할 수 있는 권한
  • WITH ADMIN OPTION
    • 모든 권한을 부여

2) REVOKE

  • 데이터베이스 사용자에게 부여된 권한을 회수한다.
REVOKE SELECT ON EMP TO 유저이름
#유저이름이라는 사용자에게 EMP 테이블에서 SELECT권한을 회수한다. 

 

2. TCL

TCL은 트랜잭션을 컨트롤하는 언어이다.

1) COMMIT

  • COMMIT 은 INSERT, UPDATE, DELETE문으로 변경할 데이터를 데이터베이스에 반영한다.
  • 변경 이전 데이터는 잃어버린다.
  • Git의 COMMIT과 원리가 비슷하다
  • Auto COMMIT이 존재한다.

2) ROLLBACK

  • 데이터에 대한 변경 사용을 모두 취소하고 트랜잭션을 종료한다.
  • INSERT, UPDATE, DELETE문의 작업을 모두 취소한다. 단, 이전에 COMMIT한 것까지만 복구된다.

3) SAVEPOINT

  • 트랜잭션을 작게 분할하여 관리하는 것으로, SAVEPOINT를 사용하면 지정된 위치 이후의 트랜잭션만 ROLLBACK 할 수 있다.

 

 

여기까지 모든 SQL에 대해 알아봤다.

이전에 정리해둔 내용은 아래에서 확인할 수 있다.

2023.02.04 - [Programming/SQL] - [SQL] SQL의 종류와 정의

 

[SQL] SQL의 종류와 정의

일상 생활에서 쉽게 접할 수 있는 엑셀 역시 데이터베이스 중 하나다. 이 데이터베이스를 다루기 위한 언어가 SQL인데, 쉽게 말해 데이터를 뽑아내는 언어라고 할 수 있다. SQL에 대해서 좀 더 자

cherish22.tistory.com

2023.02.04 - [Programming/SQL] - [SQL] DDL (테이블 생성, 변경, 삭제)

 

[SQL] DDL (테이블 생성, 변경, 삭제)

데이터베이스의 데이터를 조회하고, 수정하거나 삭제하려면, 그 이전에 테이블이 존재해야 한다. DDL은 (Data Definition Language) 관계형 데이터베이스의 구조를 정의하는 언어다. (DDL, DML, DCL, TCL에 대

cherish22.tistory.com

2023.02.05 - [Programming/SQL] - [SQL] DML (데이터 삽입, 삭제, 수정, 선택)

 

[SQL] DML (데이터 삽입, 삭제, 수정, 선택)

이제, 본격적으로 데이터를 삽입하고 삭제, 수정, 선택하는 방법에 대해서 알아보자. 앞서 정리한 내용을 참고하면 이해가 쉽다. [Programming/SQL] - [SQL] SQL의 종류와 정의 [SQL] SQL의 종류와 정의 일

cherish22.tistory.com

2023.02.06 - [Programming/SQL] - [SQL] SQL 조건문

 

[SQL] SQL 조건문

SQL로 특정한 데이터를 추출할 때, 어떤 형식으로 표현할 수 있을까? WHERE문과 LIKE, BETWEEN문을 한 번에 살펴보자. 1. WHERE문 1) WHERE문이 사용하는 연산자 [비교 연산자] = : 같은 것을 조회한다 < : 작

cherish22.tistory.com

2023.02.06 - [Programming/SQL] - [SQL] GROUP 연산, 실행 순서

 

[SQL] GROUP 연산, 실행 순서

새로운 그룹을 만들거나, 그룹들 사이에 조건을 걸려면 어떻게 해야 할까? GROUP BY, HAVING을 알아보자. 1. GROUP BY 문 GROUP BY는 테이블에서 소규모 행을 그룹화하여 합계, 평균, 최댓값, 최솟값 등을

cherish22.tistory.com

2023.02.06 - [Programming/SQL] - [SQL] DCL과 TCL

 

[SQL] DCL과 TCL

앞서, DDL, DML에 대해 정리했다. 데이터베이스의 구조와 테이블에서 데이터를 입력하고 수정하고 삭제하고 조회하는 등의 추출 과정을 마쳤다. 그렇다면, 사용자에게 권한을 부여하거나 회수하

cherish22.tistory.com

 

Comments