데이터베이스 개론2판(김연희)를 읽고 복습목적으로 내용을 정리한 글입니다.
데이터베이스 보안은 일반적으로 세 가지 유형으로 구분한다.
물리적 환경에 대한 보안
자연 재해처럼 데이터베이스에 물리적 손실을 발생시키는 위험으로부터 보호
권한 관리를 통한 보안
접근이 허락된 사용자만 부여된 권한 내에서 데이터베이스를 이용할 수 있도록 한다.
운영 관리를 통한 보안
사용자의 잘못된 사용으로 데이터 무별성을 해치는 위험으로부터 보호
데이터베이스 관리 시스템은 계정이 발급된 사용자가 로그인에 성공했을 경우 데이터베이스에 접근이 가능하도록 접근 제어(access control) 기능을 기본으로 제공한다.
기본적으로 데이터베이스에 존재하는 모든 객체는 해당 객체를 생성한 사용자만 사용 권한을 가진다.
데이터 공유를 위해 생성자는 필요에 따라 다른 사용자에게 자신이 생성한 객체에 대한 권한을 부여한다.
GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION]
데이터베이스에 존재하는 모든 유형의 객체에 대한 권한을 설정할 수 있다.
테이블 관련 권한으로는 INSERT
,DELETE
,UPDATE
,SELECT
,REFERENCES
가 있다.
REFERENCES
는 외래키 제약조건을 정의할 수 있는 권한이다.UPDATE
,SELECT
는 테이블의 일부 속성에만 권한을 부여할 수도 있다.WITH GRANT OPTION
을 포함하면 권한을 부여받은 사용자가 부여받은 권한을 다른 사용자에게도 부여할 수 있다.객체에 대한 권한은 해당 객체의 소유자가 부여하지만 시스템 권한은 데이터베이스 관리자가 부여한다.
REVOKE 권한 ON 객체 FROM 사용자 CASCADE : RESTRICT
권한을 부여받은 사용자가 다른 사용자에게 권한을 부여할 수 있다.
만약 해당 사용자의 권한이 취소될 때 다른 사용자에게 부여한 권한까지 취소할지를 CASCADE
, RESTRICT
옵션으로 결정한다.
CASCADE
: 부여받은 다른 사용자의 권한까지 취소한다.RESTRICT
: 지명당한 사용자의 권한만 취소한다.권한의 관리를 더 쉽게 해주는 것이 역할(role)이다.
CREATE ROLE 롤이름;
GRANT 권한 ON 객체 TO 롤이름;
GRANT 롤이름 TO 사용자
REVOKE 롤이름 FROM 사용자
DROP ROLE 롤이름
IT CookBook, 데이터베이스 개론(2판): 기초 개념부터 빅데이터까지_김연희
새로운 스터디인가??