Frinee의 코드저장소

보안과 권한 관리

by Frinee

이 글은 김연희 저 - "데이터베이스 개론 3판"을 공부하고 정리하여 작성하였습니다.

1. 보안

  • 물리적 환경에 대한 보안
    • 자연 재해처럼 데이터베이스에 물리적 손실을 발생시키는 위험으로부터 지켜야 함
  • 권한 관리를 통한 보안
    • 접근이 허락된 사용자만 부여된 권한 내에서 데이터베이스를 사용할 수 있어야 함.
    • 사용자별로 데이터베이스의 사용 범위와 수행 가능한 작업 내용을 제한할 수 있어야 함.
  • 운영 관리를 통한 보안
    • 데이터 무결성을 유지하기 위한 올바른 제약조건을 정의하고 사용자들이 위반하지 않도록 통제

 

2. 권한 관리

2.1. 권한 관리의 개념

  • 데이터베이스 관리 시스템은 계정이 발급된 사용자가 로그인 했을 경우에만 데이터베이스에 접근 가능하도록 하는 접근 제어 기능을 제공
  • 기존 사용자의 계정 관리는 데이터베이스 관리 시스템의 데이터베이스 관리자가 담당
  • 데이터베이스 관리자는 데이터베이스 전체 보안 관리를 위한 모든 권한을 갖고 있음
  • 테이블이나 뷰와 같이 데이터베이스에 존재하는 모든 객체는 기본적으로 생성한 사용자만 사용 권한을 가짐
  • 데이터베이스 객체 소유자는 필요에 따라 SQL문을 이용해 다른 사용자에게 사용 권한을 부여할 수 있다.

2.2. 권한의 부여

GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];
  • GRANT 명령어를 활용해 데이터베이스에 존재하는 모든 유형의 객체에 다른 사용자 권한을 부여할 수 있음
  • 부여할 수 있는 권한은 INSERT, DELETE, UPDATE, SELECT, REFERENCES
    • REFERENCES : 외래키 제약조건을 정의할 수 있는 권한
  • REFERENCES 권한을 부여받은 사용자는 권한 부여 대상인 테이블의 기본키를 참조하는 외래키를 자신이 생성하는 테이블에 포함할 수 있음
  • GRANT는 테이블을 구성하는 모든 속성에 권한을 부여
  • UPDATESELECT 는 테이블을 구성하는 속성들 중 일부 속성만 수정 또는 검색하는 권한을 부여할 수도 있음
  • 모든 사용자에게 권한을 똑같이 부여하고 싶으면 PUBLIC 키워드를 사용
  • WITH GRANT OPTION 을 포함하면 권한을 부여받은 사용자가 자신이 부여받은 권한을 다른 사용자에게도 부여할 수 있음
  • 시스템 권한은 데이터베이스 관리와 관련된 작업에 대한 권한
    • CREATE TABLE, CREATE VIEW 등 데이터 정의어와 관련된 작업
    • EX) GRANT CREATE TABLE TO Song;

2.3. 권한의 취소

REVOKE 권한 ON 객체 FROM 사용자 CASCADE | RESTRICT;
  • REVOKE 문을 활용하여 다른 사용자에게 부여했던 권한을 취소할 수도 있음.
    • 권한을 취소할 사용자 A가 사용자 B에게, 사용자 B는 사용자 C에게 권한을 부여한 경우 처리하는 방법이 각각 존재함.
    • 사용자 A 가 사용자 B 뿐만 아니라 사용자 C도 권한을 취소하려면 CASCADE 옵션을 사용
    • 사용자 A가 사용자 C의 권한은 유지시킬 경우 RESTRICT 옵션을 사용

2.4. 역할의 부여와 취소

  • 여러 사용자에게 동일한 권한들을 부여하고 취소하는 번거로운 작업을 편리하게 수행할 수 있도록 도움을 주는 것이 역할(ROLE)이다.
CREATE ROLE 롤이름;  // 역할 생성
GRANT 권한 ON 객체 TO 롤이름;  // 역할에 필요한 권한들을 넣는 작업
GRANT 롤이름 TO 사용자;  // 사용자에게 역할 부여

EX)
CREATE ROLE role_1;
GRANT SELECT,INSERT,DELETE ON 고객 TO role_1;
GRANT role_1 TO Hong;

  • 사용자에게 부여한 역할을 취소하는 명령어는 다음과 같다.
  • REVOKE 롤이름 FROM 사용자;
  • 역할 제거 명령어는 DROP ROLE문을 사용한다.
  • 역할을 제거는 데이터베이스 관리자가 담당하며 역할을 제거하면 해당 역할을 부여 받았던 모든 사용자도 역할에 속해 있던 권한을 더는 가지지 못함.

자료

  • 데이터베이스 개론 3판 (김연희 저, 2024.1)

'[컴퓨터 과학자 스터디] > 데이터베이스' 카테고리의 다른 글

데이터 과학과 빅데이터  (2) 2024.12.09
데이터베이스 응용 기술  (1) 2024.12.05
회복과 병행 제어  (0) 2024.12.02
정규화  (2) 2024.11.29
데이터베이스 설계  (2) 2024.11.27

블로그의 정보

프리니의 코드저장소

Frinee

활동하기