데이터베이스의 접근 권한을 제어하기 위한 명령어입니다. DCL은 데이터베이스의 보안을 유지하고, 특정 사용자에게 데이터에 접근하거나 조작할 수 있는 권한을 부여하거나 취소하는 데 사용됩니다.
DCL의 주요 명령어는 GRANT
와 REVOKE
입니다.
SELECT
, INSERT
, UPDATE
, DELETE
등 데이터에 대한 접근 권한.CREATE
, ALTER
, DROP
등 데이터베이스 객체(테이블, 뷰, 인덱스 등)에 대한 권한.GRANT OPTION
, SUPER
등 시스템 또는 권한 관리에 대한 권한.GRANT
: 권한 부여정의: GRANT
명령어는 특정 사용자에게 데이터베이스 객체(테이블, 뷰, 프로시저 등)에 대한 권한을 부여하는 명령어입니다.
구문:
GRANT 권한리스트 ON 객체명 TO '사용자'@'호스트';
권한 목록
SELECT
: 데이터 조회 권한.INSERT
: 데이터 삽입 권한.UPDATE
: 데이터 수정 권한. DELETE
: 데이터 삭제 권한. ALL PRIVILEGES
: 모든 권한 부여.예시
GRANT SELECT, INSERT ON sample_db.* TO 'john'@'localhost';
john
이라는 사용자에게 sample_db
데이터베이스의 모든 테이블에 대해 SELECT와 INSERT 권한을 부여합니다.
localhost
에서만 접근이 가능하도록 제한하고 있습니다.
정의: REVOKE
명령어는 특정 사용자에게 부여된 권한을 회수하거나 취소하는 명령어입니다.
구문
REVOKE 권한리스트 ON 객체명 FROM '사용자'@'호스트';
예시
REVOKE INSERT ON sample_db.* FROM 'john'@'localhost';
john
이라는 사용자에게 부여된 INSERT 권한을 sample_db
데이터베이스에서 회수합니다.john
사용자는 INSERT
권한 없이 데이터베이스에 접근할 수 있습니다.SHOW GRANTS
SHOW GRANTS FOR 'username'@'host';
SHOW GRANTS FOR 'john'@'localhost';
ALTER USER
명령어를 사용합니다.ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
예시:
ALTER USER 'tester1'@'localhost' IDENTIFIED BY 'newpassword';
ALTER USER 'username'@'host' PASSWORD EXPIRE;
예시:
ALTER USER 'tester1'@'localhost' PASSWORD EXPIRE;
tester1
사용자는 다음 로그인 시 비밀번호를 변경해야 합니다.개념 | 설명 |
---|---|
데이터베이스 사용자 | 데이터베이스에 접근할 수 있는 계정 |
권한 | 데이터베이스에서 특정 작업을 수행할 수 있는 권리 |
역할 (Role) | 권한을 그룹으로 묶어 여러 사용자에게 쉽게 부여할 수 있는 기능 |
인증 (Authentication) | 데이터베이스에 접속할 때 사용자의 신원을 확인하는 과정 |
접근 제어 (Access Control) | 사용자의 데이터 접근을 제한하여 보안을 강화 |
감사 및 모니터링 | 사용자의 활동을 기록하고 분석하여 보안 및 규제 준수를 지원 |
데이터베이스 관리자 (DBA) | 데이터베이스 시스템의 성능, 보안, 백업 및 복구를 관리하는 역할 |
데이터 암호화 | 데이터 보호를 위해 데이터를 암호화하여 비인가자의 접근을 방지 |