작성한 내용은 edwith의 "기초데이터 분석을 위한 SQL핵심"과 시나공 정보처리기사 책 등을 참고하여 정리한 것입니다.
(출처 : https://www.boostcourse.org/ds102/lecture/373326?isDesc=false)
시나공에서는 COMMIT
과 ROLLBACK
명령어를 DCL에 포함시켰는데, 강의에서는 트랜잭션 제어어(TCL)로 따로 뺐다.
- 데이터 제어어는 데이터 접근 권한 부여 및 제거할 때 사용하는 명령어이다.
- 데이터베이스 관리자(DBA)가 특정 사용자(User)에게 데이터 접근 권한을 부여 및 제거할 때 사용하는 명령어이다.
- 사용자 확인 : USE MYSQL
- 사용자 추가 및 삭제 : CREATE, DROP
- 권한 부여 및 삭제 : GRANT, REVOKE
GRANT SELECT ON [TABLE NAME] TO [USER]; GRANT INSERT ON [TABLE NAME] TO [USER]; GRANT DELETE ON [TABLE NAME] TO [USER]; GRANT UPDATE ON [TABLE NAME] TO [USER]; 모든 권한을 주고 싶을 때는 `ALL` GRANT ALL ON [TABLE NAME] TO [USER];
REVOKE SELECT ON [TABLE NAME] FROM [USER]; REVOKE INSERT ON [TABLE NAME] FROM [USER]; REVOKE DELETE ON [TABLE NAME] FROM [USER]; REVOKE UPDATE ON [TABLE NAME] FROM [USER]; 모든 권한을 삭제할 때 REVOKE SELECT, INSERT, DELETE, UPDATE ON [TABLE NAME] FROM [USER] ;
GRANT는 USER앞에TO
를 REVOKE은 USER앞에 FROM
을 사용한다.
우선 MYSQL 데이터베이스를 사용하기 위해 다음과 같이 실행한다.
/***************사용자 확인***************/
/* MYSQL 데이터베이스 사용 */
USE MYSQL;
/* 사용자 확인 */
SELECT *
FROM USER;
/***************사용자 추가***************/
/* 사용자 아이디 및 비밀번호 생성 */
CREATE USER 'TEST'@LOCALHOST IDENTIFIED BY 'TEST';
/* 사용자 확인 */
SELECT *
FROM USER;
TEST라는 유저가 추가된 것을 볼 수 있다.
/* 사용자 비밀번호 변경 */
SET PASSWORD FOR 'TEST'@LOCALHOST = '1234';
잘 실행되었다면 MySQL창 왼쪽위에 있는 홈버튼을 눌러보면 TEST가 추가 되어있는 것을 확인 할 수 있다. 이때 비밀번호는 설정한 '1234'이다.
/***************권한 부여 및 제거***************/
/** 권한: CREATE, ALTER, DROP, INSERT, DELETE, UPDATE, SELECT 등 **/
/* 특정 권한 부여 */
GRANT SELECT, DELETE ON PRACTICE.회원테이블 TO 'TEST'@LOCALHOST;
/* 특정 권한 제거 */
REVOKE DELETE ON PRACTICE.회원테이블 FROM 'TEST'@LOCALHOST;
/* 모든 권한 부여 */
GRANT ALL ON Practice.회원테이블 TO 'TEST'@LOCALHOST;
/* 모든 권한 제거 */
REVOKE ALL ON Practice.회원테이블 FROM 'TEST'@LOCALHOST;
/***************사용자 삭제***************/
/* 사용자 삭제 */
DROP USER 'TEST'@LOCALHOST;
/* 사용자 확인 */
SELECT *
FROM USER;