데이터 조작 언어 - ( DML : Data Manipulation Language )
특정 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 언어
GRANT : 특정 데이터베이스, 테이블 등에 사용자의 권한을 부여한다.
REVOKE : 특정 데이터베이스 ,테이블 등에 걸려있는 사용자의 권한을 없앤다.
GRANT SELECT, INSERT ON employees TO 'user1'@'localhost';
REVOKE INSERT ON employees FROM 'user1'@'localhost';
GRANT ALL PRIVILEGES ON employees TO 'user1'@'%' IDENTIFIED BY 'password';
REVOKE ALL PRIVILEGES ON employees FROM 'user1'@'%';
localhost는 MySQL 서버가 실행되고 있는 현재 머신을 의미합니다.
즉, 'user1'@'localhost'는 user1 사용자가 같은 컴퓨터에서 실행 중인 MySQL 서버에만 접근할 수 있음을 뜻합니다.
만약 외부에서 접속을 허용하려면 % (모든 IP)나 특정 IP 주소를 지정해야 합니다.
트랜잭션 제어 언어 - ( TCL : Transaction Control Language )
COMMIT : 트랜잭션의 작업을 정상적으로 처리
ROLLBACK : 트랜잭션의 작업을 취소 및 원래대로 복구
SAVEPOINT : COMMIT 전 특정 시점까지만 반영하거나 ROLLBACK
COMMIT
START TRANSACTION;
UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
COMMIT;
ROLLBACK
START TRANSACTION;
UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
ROLLBACK;
SAVEPOINT
START TRANSACTION;
UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
SAVEPOINT sp1;
UPDATE employees SET salary = salary * 1.2 WHERE department = 'HR';
ROLLBACK TO sp1;
COMMIT;