데이터베이스가 손실되면 데이터베이스를 소유한 조직체의 운영에 심대한
지장을 초래할 수 있음
→ 권한이 없는 사용자로부터 데이터베이스를 보호해야 함
당연함..
자연 재해(화재, 지진 등), 도둑, 컴퓨터 시스템에 대한 우연한 손상, 데이터에 손상을 주는 기타 유형의 위험으로부터 데이터베이스를 "물리적으로" 보호하는 것
"권한을 가진 사용자"만 특정한 접근 모드로 데이터베이스를 접근할 수 있
도록 보호
데이터베이스의 무결성에 대한 사용자 실수의 영향을 최소화하거나 제거하는 조치
사용자들에게 특정 릴레이션, 투플, 또는 애트리뷰트를 지정된 모드(ex. 읽기, 삽입, 삭제, 수정)로 접근할 수 있는 권한을 허가/취소 (grant/revoke) 하는 기법
데이터와 사용자들을 다양한 보안 등급(1급, 2급, 3급 비밀, 일반 정보 등)으로 분류하고
해당 조직에 적합한 보안 정책을 적용하여 다 단계 보안을 시행하기 위해 사용됨
서로 다른 객체들에 대해서 다양한 권한들이 존재하는데,
여기서 모든 권한을 가진 사람은 반드시 한 명 있어야함.
누구겠음
객체를 만든 사람 == 객체 생성자
가 객체에 대한 모든 권한을 가짐
이 생성자가 다른 사용자나 역할에게 본인이 소유한 객체의 특정 권한
을
주거나/뺏을 수 있음!
이로 권한을 관리하는 것.
그러면 생성자는 권한을 어떻게 주냐!!
grant문
으로 줌
UPDATE
REFERENCES
‼️ 만일 어떤 사용자가 WITH GRANT OPTION절과 함께 권한을 허가받았으면
그 사용자도 WITH GRANT OPTION과 함께 또는 WITH GRANT OPTION
없이 그 권한을 다른 사용자에게 허가할 수 있음
‼️ 기본 릴레이션의 소유자가 다른 사용자들이 릴레이션에 직접 접근하지 못하
게 하려는 경우
➡️ 릴레이션 자체에 대한 권한은 허가하지 X
➡️ 릴레이션을 참조하는 뷰
를 정의한 후, 이 뷰에 대해 권한을 부여
권한을 줄 수 있으면 당연히 취소도 할 수 있어야겠쥬?
이때는 REVOKE문
을 사용함
‼️ 어떤 사용자가 다른 사용자에게 허가했던 권한을 취소하면, 권한을 취
소 당한 사용자가 WITH GRANT OPTION을 통해서 다른 사용자에게 허가
했던 권한들도 연쇄적으로 취소됨
여러 사용자들에 대한 권한 관리를 단순화하기 위해
CREATE ROLE문
을 사용하여 역할을 생성함
아래는 예시
CREATE ROLE programmer;
GRANT CREATE VIEW ON mydb.*
TO programmer;
GRANT programmer
TO CHOI;