BACKEND [Kamranahmedse Roadmap]/DB

[MySQL] DCL 총정리

Alex Han 2025. 3. 16. 19:41
반응형

MySQL에서 DCL (Data Control Language)권한(Privilege)과 관련된 명령어를 제공하는 언어입니다. 주로 사용자 관리, 권한 부여/회수에 사용됩니다. 핵심은 보안접근 제어에 있습니다.

 

 

 


 

✅ DCL 주요 명령어

명령어 설명
GRANT 사용자에게 권한 부여
REVOKE 사용자로부터 권한 회수
CREATE USER 새로운 사용자 생성
DROP USER 사용자 삭제
SET PASSWORD 사용자 비밀번호 변경
SHOW GRANTS 사용자의 권한 확인
FLUSH PRIVILEGES 권한 변경 즉시 적용

 

 

 


1. CREATE USER

새로운 데이터베이스 사용자 생성

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

 

예시

CREATE USER 'alex'@'localhost' IDENTIFIED BY '1234';

 

 

 


2. GRANT

특정 사용자에게 특정 권한을 부여

GRANT privileges ON database.table TO 'username'@'host';

 

privileges 종류 예시

권한 설명
ALL PRIVILEGES 모든 권한 부여
SELECT 데이터 조회
INSERT 데이터 삽입
UPDATE 데이터 수정
DELETE 데이터 삭제
CREATE 테이블/DB 생성
DROP 테이블/DB 삭제
GRANT OPTION 권한 부여 권한도 부여

 

예시

GRANT SELECT, INSERT ON mydb.* TO 'alex'@'localhost';

 

 

 


3. REVOKE

이미 부여된 권한을 회수

REVOKE privileges ON database.table FROM 'username'@'host';

 

예시

REVOKE INSERT ON mydb.* FROM 'alex'@'localhost';

 

 

 


4. SHOW GRANTS

특정 사용자가 가진 권한 확인

SHOW GRANTS FOR 'username'@'host';

 

예시

SHOW GRANTS FOR 'alex'@'localhost';

 

 

 


5. DROP USER

사용자 삭제

DROP USER 'username'@'host';

 

예시

DROP USER 'alex'@'localhost';

 

 

 


6. SET PASSWORD

비밀번호 변경

SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');

 

 

 


7. FLUSH PRIVILEGES

권한 변경 후 즉시 적용

FLUSH PRIVILEGES;

 

MySQL 8.x에서는 대부분 자동 적용되어 잘 사용되지 않지만, 수동으로 권한 테이블을 다시 로드할 때 사용.

 

 

 


DCL의 핵심 역할

1. DB 사용자 관리 (생성, 삭제)

2. 접근 권한 제어 (읽기, 쓰기, 수정 권한 등)

3. 보안 강화 (불필요한 권한 제거)

반응형