[DCL] 데이터제어어 GRANT, REVOKE, COMMIT, ROLLBACK

·2023년 1월 6일
0

MySQL

목록 보기
7/8

[DCL] 데이터제어어
데이터의 보안, 무결성, 회복, 병행 수행제 등을 정의하는데 사용.


GRANT

사용자에게 권한을 부여하기 위한 명령어

-- 사용자 권한 부여 명령어
GRANT ALL PRIVILEGES ON [dbname.table_name] TO [user@host] IDENTIFIED BY 'my_password';

-- 예제 (호스트 : 로컬호스트)
GRANT ALL PRIVILEGES ON testDB.testTable TO myuser@localhost IDENTIFIED BY 'testPassword';
 
-- 예제 (호스트 : 원격 접속)
GRANT ALL PRIVILEGES ON testDB.testTable TO myuser@'%' IDENTIFIED BY 'testPassword';
 
-- 예제 (호스트 : 아이피)
GRANT ALL PRIVILEGES ON testDB.testTable TO myuse@192.168.0.100 IDENTIFIED BY 'testPassword';

GRANT 명령어 이후 설정한 권한을 적용

-- 설정한 권한 적용 명령어
FLUSH PRIVILEGES;

위 명령어 까지 완료하면 GRANT 명령어 적용됨

REVOKE

GRANT 명령어로 적용한 권한을 해제해주는 명령어.
MySQL에서 사용자 권한을 해제해줄 수 있음.

-- 권한 해제 명령어(INSERT, UPDATE, CREATE 권한 해제)
REVOKE insert, update, create ON [dbname.table_name] TO [user@host];
 
-- 권한 해제 명령어(전체 권한 해제)
REVOKE ALL ON [dbname.table_name] TO [user@host];

-- 권한 확인 명령어
SHOW GRANTS FOR [user@host];

COMMIT

COMMIT 명령어는 작업한 결과를 물리적 디스크로 저장하고, 조작 작업이 정상적으로 완료되었음을 관리자에게 알려주는 명령어.

작업 결과를 저장하고, 관리자에게 ‘저장 완료 되었음’이라고 알려주는 것. 이 명령어는 INSERT, UPDATE, DELETE 등의 작업 내용에 대해 데이터가 물리 디스크로 완전히 업데이트 되며, 모든 사용자가 변경한 데이터의 결과를 볼 수 있게됨

MySQL에서 작업한 내용들이 물리적 디스크로 저장/적용되고, 정상적으로 처리되었다면 이를 알려줌

-- INSERT, UPDATE, DELETE 등의 작업을 수행하였다고 가정...
 
-- 이전 까지의 작업을 완전 저장하는 명령어
COMMIT;

실제로 MySQL과 물리디스크 사이에서 일어나는 일은 매우 복잡하지만, 명령어는 딱 한 단어 뿐

ROLLBACK

ROLLBACK 명령어는 작업했던 내용을 원래의 상태로 복구하기 위한 명령어

INSERT, UPDATE, DELETE 와 같은 트랜잭션의 작업 내용을 취소할 수 있음

COMMIT 명령어를 사용하기 이전의 상태만 ROLLBACK 가능

COMMIT을 하게 되면 물리 디스크에 직접 저장하고 알리는 기능이므로, 이미 물리적으로는 이전의 상태가 저장되어 있지 않다는 의미 따라서, 이전 상태로 되돌릴 수 없음.

-- INSERT, UPDATE, DELETE 등의 작업을 수행하였다고 가정...
 
-- 이전 까지의 작업을 취소하는 명령어
ROLLBACK;

출처 : https://kkamikoon.tistory.com/entry/MySQL-DCL-명령어-사용하는-방법GRANT-REVOKE-COMMIT-ROLLBACK

profile
열심히 기록

0개의 댓글