반응형
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. 보안 강화 (불필요한 권한 제거)
반응형
'BACKEND [Kamranahmedse Roadmap] > DB' 카테고리의 다른 글
JDBC를 통해 데이터 입력, 삭제, 조회하기 (0) | 2025.03.24 |
---|---|
JDBC란 무엇인가? (0) | 2025.03.19 |
[MySQL] DML 총정리 (0) | 2025.03.17 |
[MySQL] DDL 총정리 (0) | 2025.03.17 |
MySQL서버 실행 및 종료 + 데몬(daemon) (0) | 2025.03.04 |