Preface
이번 장에선 DB의 보안과 권한 관리 방식을 공부했다.
권한이 필요한 사용자에게 SQL 문을 이용하여 권한을 부여하거나, 부여했던 권한을 취소하는 것 뿐이므로 어렵고 복잡한 내용은 없었다.
다만, 이번 장의 마지막에 잠시 소개된 데이터베이스의 암호화 부분은 정확히 이해할 수 없어 따로 빼서 정리해두었다.
1. 보안
- 데이터베이스 보안의 유형
1) 물리적 환경에 대한 보안: 자연 재해 등으로부터 보호
2) 권한 관리를 통한 보안: 권한이 없는 사용자로부터 보호
3) 운영 관리를 통한 보안: 권한이 있는 사용자로부터 보호
→ 무결성 유지를 위해
2. 권한 관리
- DBMS는 접근 제어 기능을 기본으로 제공한다.
- 사용자 계정 관리는 데이터베이스 관리자가 담당한다.
→ DB 보안 관리를 위해 필요한 모든 권한을 가지고 있다.
- 모든 객체는 기본적으로 해당 객체를 생성한 사용자만 사용 권한을 가진다.

- GRANT: 객체의 소유자가 다른 사용자에게 객체에 대한 사용 권한을 부여하기 위해 필요한 명령어
GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];
→ 일반적으로 테이블을 대상으로 권한을 부여한다.
- 다른 사용자에게 부여할 수 있는 주요 권한
→ 여러 권한을 한 번에 동시 부여 할 수 있다.
1) INSERT
2) DELETE
3) UPDATE
4) SELECT
5) REFERENCES etc.
- REFERENCES: 외래키 제약조건을 정의할 수 있는 권한
→ 해당 조건을 부여받은 사용자는 권한 부여 대상인 테이블의 기본키를 참조하는 외래키를 자신이 생성하는 테이블에 포함할 수 있다.
- 권한 부여 방법
1) 일부 속성만 권한 부여: 권한과 함께 권한을 부여하고 싶은 속성의 이름을 ( ) 안에 나열
2) 모든 사용자에게 권한을 똑같이 부여: PUBLIC 키워드를 사용하여 GRANT 문을 작성
- 일반적으로 GRANT 명령어로 부여받은 권한은 다른 사용자에게 부여할 수 없지만, WITH GRANT OPTION을 포함하면 권한을 부여받은 사용자가 자신이 부여받은 권한을 다른 사용자에게도 부여할 수 있다.
- 시스템 권한: DB 관리(데이터 정의어)와 관련된 작업에 대한 권한
→ 데이터베이스 관리자가 부여한다.
- REVOKE: 다른 사용자에게 부여한 객체의 사용 권한을 취소하기 위해 필요한 명령어
REVOKE 권한 ON 객체 FROM 사용자 CASCADE / RESTRICT;
→ 권한 취소 옵션
1) CASCADE: WITH GRANT OPTION을 통해 권한을 부여받은 사용자가 다른 사용자에게 부여한 권한까지 연쇄적으로 취소
2) RESTRICT: 권한을 취소할 사용자 A가 사용자 C가 부여받은 권한은 취소하지 않도록 제한
※ 사용자별로 테이블에 부여된 권한 목록을 작성해두고 관리하는 것이 좋다.
- 역할: 여러 권한을 그룹으로 묶어놓은 것
- CREATE ROLE: 역할을 생성하는 데 필요한 명령어
CREATE ROLE 롤이름;
- 역할에 권한을 넣는 GRANT 문의 기본 형식
GRANT 권한 ON 객체 TO 롤이름;
- 역할을 사용자에게 부여하는 GRANT 문의 기본 형식
GRANT 롤이름 TO 사용자;
※ 역할을 부여받은 모든 사용자의 권한도 변경된 역할에 맞게 자동으로 변경된다.
- 사용자에게 부여된 역할을 취소하는 REVOKE 문의 기본 형식
REVOKE 롤이름 FROM 사용자;
- DROP ROLE: 역할을 제거하는 데 필요한 명령어
DROP ROLE 롤이름;
3. 데이터베이스 암호화
- 암호화: 평문을 암호문으로 바꾸는 것
- 복호화: 암호문을 평문으로 바꾸는 것
- 암호화 알고리즘: 암호화를 수행하거나, 복호화를 수행할 때 양쪽이 서로 알고 있어야 할 수단
- 키: 약속한 규칙
- 대칭 암호화: 암호화 키를 복호화 키로도 사용하는, 암호화 키와 복호화 키가 같은 방식
- 비대칭(공개키) 암호화: 권한이 있는 모든 사용자가 공개키와 개인키로 구성된 키 쌍을 가지는 방식
1) 암호화 키는 공개해서 누구든지 평문을 암호문으로 만들 수 있지만, 복호화 알고리즘과 복호화 키는 비밀로 유지한다.
2) 개인키로 암호화된 메시지는 공개키로 복호화되고, 공개키로 암호화된 메시지는 개인키로만 복호화가 가능하다.
'DB & SQL > 데이터베이스 개론' 카테고리의 다른 글
(Fin) 데이터 과학과 빅데이터 (2) | 2022.03.06 |
---|---|
데이터베이스 응용 기술 (0) | 2022.03.03 |
회복과 병행 제어 (0) | 2022.02.24 |
정규화 (0) | 2022.02.23 |
데이터베이스 설계 (0) | 2022.02.21 |
댓글