[Day 12 | DB] DCL : GRANT, REVOKE

y♡ding·2024년 10월 29일
0

데브코스 TIL

목록 보기
79/163

데이터베이스의 접근 권한을 제어하기 위한 명령어입니다. DCL은 데이터베이스의 보안을 유지하고, 특정 사용자에게 데이터에 접근하거나 조작할 수 있는 권한을 부여하거나 취소하는 데 사용됩니다.
DCL의 주요 명령어는 GRANTREVOKE입니다.

권한 (Privileges) 및 권한 관리

  • 정의: 권한이란 데이터베이스에서 특정 작업을 수행할 수 있는 권리를 의미합니다. 예를 들어, 데이터를 읽고 쓰는 권한, 테이블을 생성하거나 삭제할 수 있는 권한 등이 있습니다.
  • 종류:
    • 데이터 권한: 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 데이터베이스의 모든 테이블에 대해 SELECTINSERT 권한을 부여합니다.

    • localhost에서만 접근이 가능하도록 제한하고 있습니다.


REVOKE: 권한 취소

  • 정의: 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)데이터베이스 시스템의 성능, 보안, 백업 및 복구를 관리하는 역할
데이터 암호화데이터 보호를 위해 데이터를 암호화하여 비인가자의 접근을 방지

0개의 댓글

관련 채용 정보