DCL(Data Control Language) : 데이터베이스의 접근을 제어하기 위한 명령어
- GRANT
- REVOKE
[권한의 종류]
- 데이터 권한 : SELECT, INSERT, UPDATE, DELETE 등 데이터에 대한 접근 권한
- 객체 권한 : CREATE, ALTER, DROP 등 데이터베이스 객체에 대한 권한
- 관리 권한 : GRANT OPTION, SUPER 등 시스템 또는 권한 관리에 대한 권한
GRANT
사용자에게 데이터베이스 객체에 대한 권한(테이블, 뷰, 프로시저 등)을 부여하는 명령어
GRANT 권한리스트 ON 객체 TO '사용자'@'호스트';
- SELECT
- INSERT
- UPDATE
- DELETE
- ALL PRIVILEGES : 모든 권한 부여
REVOKE
특정 사용자에게 부여된 권한을 회수하거나 취소하는 명령어
REVOKE INSERT ON 객체명 FROM '사용자'@'호스트';
--예시
REVOKE INSERT ON sample_db.* FROM 'john'@'localhost';
--john이라는 사용자에게 부여된 insert 권한을 sample_db 데이터베이스에서 회수
특정 사용자의 권한 확인 : 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;
--tester1 사용자는 다음 로그인 시 비밀번호를 변경
ALTER USER 'tester1'@'localhost' PASSWORD EXPIRE;
개념정리표
| 개념 | 설명 |
| 데이터베이스 사용자 | 데이터베이스에 접근할 수 있는 계정 |
| 권한 | 데이터베이스에서 특정 작업을 수행할 수 있는 권리 |
| 역할 (Role) | 권한을 그룹으로 묶어 여러 사용자에게 쉽게 부여할 수 있는 기능 |
| 인증 (Authentication) | 데이터베이스에 접속할 때 사용자의 신원을 확인하는 과정 |
| 접근 제어 (Access Control) | 사용자의 데이터 접근을 제한하여 보안을 강화 |
| 감사 및 모니터링 | 사용자의 활동을 기록하고 분석하여 보안 및 규제 준수를 지원 |
| 데이터베이스 관리자 (DBA) | 데이터베이스 시스템의 성능, 보안, 백업 및 복구를 관리하는 역할 |
| 데이터 암호화 | 데이터 보호를 위해 데이터를 암호화하여 비인가자의 접근을 방지 |
'Backend > SQL' 카테고리의 다른 글
| [SQL]데이터베이스 집합 연산 (0) | 2024.10.29 |
|---|---|
| [SQL]데이터베이스 백업/복원 (0) | 2024.10.29 |
| [SQL] 데이터베이스 사용자 (1) | 2024.10.29 |
| [SQL] 뷰(VIEW) (0) | 2024.10.29 |
| [SQL] 제약조건(Constraints) (3) | 2024.10.29 |