프로그래밍 숲

SQL 명령어 DCL(GRANT, REVOKE) & TCL(COMMIT, ROLLBACK) 예시 본문

프로그래밍_인포/데이터베이스&SQL

SQL 명령어 DCL(GRANT, REVOKE) & TCL(COMMIT, ROLLBACK) 예시

jjscript 2023. 5. 29. 06:30
728x90
반응형

데이터 제어어(DCL, Data Control Language)

SQL에서 데이터 제어어는 데이터베이스의 액세스 권한과 보안을 제어하는 ​​데 사용됩니다. DCL 명령은 GRANT 및 REVOKE 등의 유형이 있습니다. 그 중 GRANT와 REVOKE 명령어에 대해서 알아보겠습니다.

 

GRANT

'GRANT'는 사용자에게 데이터베이스, 테이블 또는 뷰에 대한 다양한 권한을 부여합니다.

 

예시

'SalesDB'라는 데이터베이스와 'John'이라는 사용자가 있다고 가정해 보겠습니다. 'SalesDB'의 'Customers' 테이블에서 SELECT, INSERT 및 DELETE 데이터에 대해 'John'에게 권한을 부여하려고 합니다.

GRANT SELECT, INSERT, DELETE ON SalesDB.Customers TO John;

 

이 경우 'John'은 이제 'SalesDB' 데이터베이스의 'Customers' 테이블에서 SELECT, INSERT 및 DELETE 작업을 수행할 수 있습니다.

 

REVOKE

'REVOKE'는 사용자에게 부여된 권한을 회수합니다.

 

예시

나중에 'John'이 'Customers'에서 DELETE할 수 있는 기능을 더 이상 원하지 않는다고 결정하면 REVOKE 명령을 사용합니다.

REVOKE DELETE ON SalesDB.Customers FROM John;

이 명령을 실행한 후 'John'은 더 이상 'Customers' 테이블에 대한 DELETE 권한이 없지만 SELECT 및 INSERT 작업을 수행할 수 있는 권한은 유지됩니다.

트랜잭션 제어어(TCL, Transaction Control Language)

트랜잭션 제어 언어(TCL)는 데이터베이스에서 트랜잭션을 관리하는 데 사용되는 일련의 명령 또는 명령문입니다. 트랜잭션이라고 하는 단일 단위로 여러 데이터베이스 작업의 실행 및 결과를 제어하는 방법을 제공합니다. TCL 명령은 일반적으로 데이터 조작 언어(DML) 또는 데이터 정의 언어(DDL)와 같은 다른 데이터베이스 언어와 함께 사용되어 데이터베이스 내에서 데이터 무결성과 일관성을 보장합니다.

 

TCL에는 많은 명령어가 있지만 그 중 COMMIT과 ROLLBACK을 사용한 트랜잭션 예시에 대해서 알아보겠습니다.

 

예시

BEGIN TRANSACTION;

UPDATE Employees
SET Salary = 5000
WHERE EmployeeID = 123;

IF (조건) THEN
    COMMIT;
ELSE
    ROLLBACK;
END IF;

END TRANSACTION;

 

728x90
반응형
Comments