Backend/SQL

[SQL] DCL(Data Control Language)

해로몬 2024. 10. 29. 16:47

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