보안과 권한 관리
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
는 테이블을 구성하는 모든 속성에 권한을 부여UPDATE
와SELECT
는 테이블을 구성하는 속성들 중 일부 속성만 수정 또는 검색하는 권한을 부여할 수도 있음- 모든 사용자에게 권한을 똑같이 부여하고 싶으면
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