[데이터베이스 개론 11장] 보안과 권한 관리

Mh_Go·2021년 1월 15일
0

보안

  • 비인가자가 데이터베이스에 침입하여 데이터를 유출하거나 손상한다면 조직에 치명적인 손실이 발생함
    인가자만 데이터베이스에 접근할 수 있도록 통제하여 보안을 유지하는 일이 무척 중요

보안의 유형

  • 물리적 환경에 대한 보안 - 자연 재해 등으로부터 보호
  • 권한 관리를 통한 보안 - 권한이 없는 사용자로부터 보호
  • 운영 관리를 통한 보안 - 권한이 있는 사용자로부터 보호

권한 관리

  • DBMS는 보안을 유지하기 위해, 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근이 가능하도록 하는 접근 제어(access control)기능을 기본으로 제공
    계정을 생성, 변경, 제거하는 사용자 계정 관리는 DBA가 담당

  • 데이터베이스에 존재하는 모든 객체는 기본적으로 해당 객체를 생성한 사용자만 사용 권한을 지님
    필요에 따라 공유할 목적으로 다른 사용자에게 권한을 부여, 취소할 수 있음

권한의 부여

GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];

  • 일반적으로 테이블에 권한을 부여하는 경우가 많음
    주요 권한으로 INSERT, DELETE, UPDATE, SELECT, REFERENCES 가 존재
  • REFERENCES 권한을 부여 받은 사용자는 대상 테이블의 기본키를 참조하는 외래키를 자신의 테이블에 포함할 수 있음
  • UPDATE, SELECT는 일부 속성에 대한 권한 부여 가능
    모든 사용자들에게 똑같이 부여하고 싶다면 PUBLIC 키워드 이용

※ WITH GRANT OPTION을 포함하여 부여 받은 사용자는 다른 사용자에게도 권한 부여 가능

보안을 강화하기 위해 뷰를 이용할 수 있음
테이블 일부분을 뷰로 생성한 후, 사용자에게 이 뷰에 대한 권한을 부여하는 것도 보안을 유지하는 데 도움이 됨

  • 객체에 대한 권한과 달리 시스템 권한은 DBA가 부여
    시스템 권한은 데이터베이스 관리와 관련된 작업 대한 권한, DDL과 관련된 작업에 대한 권한
    (객체를 지정할 필요가 없음) - ex) GRANT CREATE TABLE TO mhgo;

권한의 취소

REVOKE 권한 ON 객체 FROM 사용자 CASCADE : RESTRICT;

  • 사용자가 WITH GRANT OPTION으로 인한 추가적인 권한 부여가 되었다면 이를 처리하는 방법이 필요 → 연쇄적으로 취소하고자 하면 CASCADE, 취소하지 않도록 하려면 RESTRICT를 사용

  • DBA는 각 테이블의 소유주가 사용자들에게 어떤 권한을 부여했는지, WITH GRANT OPTION을 포함하여 권한을 부여했는지 등 권한 목록을 작성해두고 관리하는 것이 필요

  • DBA가 시스템 권한을 취소할 때도 REVOKE문을 이용
    ex)REVOKE CREATE TABLE FROM mhgo;

역할(role)

  • 여러 사용자에게 동일한 권한들을 부여하고 취소하는 번거로운 작업을 편리하게 수행할 수 있도록 도움을 주는 것

  • 새로운 역할을 생성하는 기능은 DBA가 담당 / CREATE ROLE 롤이름;

  • 역할에 필요한 권한들을 넣을 떄는 GRANT 이용 - 테이블 소유자가 수행

  • 역할에 사용자에게 부여, 취소하는 것은 DBA가 담당 / GRANT/REVOKE 롤이름 TO/FROM 사용자;

  • 역할 제거는 DBA가 담당 / DROP ROLE 롤이름;

출처 - 김연희저자의 데이터베이스 개론 2판 - 한빛 아카데미

profile
능력있는 DBA가 되고자하는 초짜 DBA

0개의 댓글