데이터베이스 보안 - 접근통제
접근통제
- 데이터가 저장된 객체와 사용하려는 주체 사이의 정보 흐름을 제한
- 데이터에 대해 통제를 함으로써 자원의 불법적인 접근 및 파괴를 예방
- 임의 접근통제(Discretionary Access Control)
-> 데이터에 접근하는 사용자의 신원에 따라 접근 권한 부여
-> 통제 권한이 주체에 있어 접근통제 권한을 주체가 지정하고 제어
-> 객체를 생성한 사용자가 객체에 대한 모든 권한을 부여받고 다른 사용자에게 허가 가능
-> SQL 명령어로는 GRANT, REVOKE가 있음
- 강제 접근통제(Mandatory Access Control)
-> 주체와 객체의 등급을 비교하여 접근 권한을 부여
-> 제 3자가 접근통제 권한 지정
-> 객체별로 보안 등급을 부여할 수 있으며 사용자별로 인가 등급을 부여할 수 있음
-> 주체의 보안 등급이 자신의 보안등급보다 높으면 읽기, 수정, 등록이 모두 불가하고 동등하면 읽기, 수정, 등록이 모두 가능하며 낮으면 읽기만 가능
접근통제 정책
- 어떤 주체(Who)가 언제(When) 어디서(Where) 어떤 객체(What)에게 어떤 행위(How)에 대한 허용 여부를 정의하는 것
- 신분 기반 정책
-> 주체나 그룹의 신분에 근거하여 객체의 접근을 제한
-> IBP(Individual-Based Policy) : 최소 권한 정책, 단일 주체에게 하나의 객체에 대한 허가를 부여
-> GBP(Group-Based Policy) : 복수 주체에 대한 허가를 부여
- 규칙 기반 정책
-> 주체가 갖는 권한에 근거하여 객체의 접근을 제한
-> MLP(Multi-Level Policy) : 사용자 및 객체별로 지정된 기밀 분류에 따른 정책
-> CBP(Compartment-Based Policy) : 집단별로 지정된 기밀 허가에 따른 정책
- 역할 기반 정책
-> 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한
접근통제 매커니즘
- 정의된 접근통제 정책을 구현하는 기술적인 방법
- 접근통제 목록 : 객체를 기준으로 특정 객체에 대해 어떤 주체가 어떤 행위를 할 수 있는지 기록한 목록
- 능력 리스트 : 주체를 기준으로 주체에게 허가된 자원 및 권한을 기록한 목록
- 보안 등급 : 주체나 객체에 부여된 보안 속성의 집합
- 패스워드 : 주체가 자신임을 증명할 때 사용하는 인증 방법
- 암호화
암호화 / 복호화
- 암호화는 데이터를 보낼 때 송신자가 지정한 수신자 외는 그 내용을 알 수 없도록 평문을 암호문으로 변환
- 암호화 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꿈
- 복호화 과정 : 암호문을 원래의 평문으로 바꿈
접근통제 보안 모델
- 보안 정책을 구현하기 위한 정형화된 모델
- 기밀성 모델
-> 군사적인 목적으로 개발된 최초의 수학적 모델로 기밀성 보장이 최우선
- 무결성 모델
-> 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
-> 데이터 일관성 유지에 중점을 두어 개발
- 접근통제 모델
-> 접근통제 매커니즘을 보안 모델로 발전시킨 것
-> 접근통제 모델 : 임의적인 접근 통제를 관리하기 위한 모델로 행은 주체 열은 객체를 의미
-> R : 읽기 권한
-> W : 쓰기 권한
-> ALL : 모든 권한
접근통제 조건
- 접근통제 매커니즘의 취약점을 보안하기 위해 접근 통제 정책에 부가하여 적용할 수 있는 조건
- 값 종속 통제 : 객체에 저장된 값에 따라 다르게 접근통제를 허용해야 하는 경우
- 다중 사용자 통제 : 지정된 객체에 다수의 사용자가 동시에 접근을 요구하는 경우
- 콘텍스트 기반 통제 : 특정 시간, 네트워크 주소, 접근 경로, 인증 경로 등에 근거하여 접근을 제어하는 방식
감사 추적
- 사용자나 애플리케이션의 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능
- 오류가 발생한 데이터베이스를 복구하거나 부적절한 데이터 조작을 파악하기 위해 사용
데이터베이스 백업
데이터베이스 백업
- 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업
데이터베이스 장애 유형
- 사용자 실수 : 사용자의 실수로 인한 오류
- 미디어 장애 : 하드웨어 장애나 데이터가 파손된 경우
- 구문 장애 : 프로그램 오류나 사용 공간의 부족으로 발생하는 장애
- 사용자 프로세스 장애 : 프로그램이 비정상적으로 종료되거나 네트워크 이상으로 세션이 종료되어 발생하는 장애
- 인스턴스 장애 : 하드웨어 장애, 정전, 시스템 파일 파손 등 비정상적 요인으로 메모리나 데이터베이스 서버의 프로세스가 중단된 경우
로그 파일
- 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 기록한 파일
- 로그 파일을 기반으로 과거 상태로 복귀(UNDO)시키거나 현재 상태로 재생(REDO)시켜 데이터베이스 상태를 일관성 있게 유지
데이터베이스 복구 알고리즘
- 동기적/비동기적 갱신에 따라 분류
- NO-UNDO/REDO : 비동기적으로 갱신한 경우
- UNDO/NO-REDO : 동기적으로 갱신한 경우
- UNDO/REDO : 동기/비동기적으로 갱신한 경우
- NO-UNDO/NO-REDO : 동기적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록한 경우
백업 종류
- 물리 백업 : 데이터베이스 파일을 백업하는 방법
- 논리 백업 : 데이터베이스 내의 논리적 객체들을 백업하는 방법
스토리지
스토리지의 개요
- 단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
DAS(Direct Attached Storage)
- 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
- 서버에서 저장장치를 관리
- 저장장치를 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉬움
- 다른 서버에서 스토리지에 접근하여 사용 불가
NAS(Network Attached Storage)
- 서버와 저장장치를 네트워크를 통해 연결하는 방식
- 별도의 파일 관리 기능이 있는 NAS Storage가 내장된 저장장치를 직접 관리
- DAS에 비해 확장성 및 유연성이 좋음
- 서버들이 자유롭게 스토리지에 접근하여 파일 공유
SAN(Storage Area Network)
- DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식
- 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성
- 파이버 채널(FC) 스위치를 이용하여 네트워크를 구성
-> 파이버 채널 : 장치 간 데이터 전송 속도를 기가바이트로 높이기 위한 네트워크 기술
- 서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠름
- 서버들이 저장장치 및 파일을 자유롭게 공유
논리 데이터 모델의 물리 데이터 모델 변환
테이블
- 데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트
엔티티를 테이블로 변환
- 논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환
- 테이블과 엔티티 명칭은 동일하게 하는 것을 권고
- 테이블은 소스코드 가독성을 위해 영문명을 사용
- 표준화된 용어 사용 지향
- 변환 규칙
슈퍼타입/서브타입을 테이블로 변환
- 슈퍼타입과 서브타입은 논리 데이터 모델에서 이용되는 형태이므로 물리 데이터 모델을 설계할 때는 테이블로 변환
- 슈퍼타입 기준 테이블 변환
-> 서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만듦
-> 데이터의 액세스가 상대적 용이
-> 뷰를 이용하여 각각의 서브타입만을 액세스 하거나 수정할 수 있음
-> SQL 문장 구성이 단순
-> 디스크 저장 공간이 증가
-> 인덱스의 효율이 떨어짐
- 서브타입 기준 테이블 변환
-> 슈퍼타입의 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만듦
-> 각 서브타입 속성들의 선택 사양이 명확한 경우 유리
-> 여러 개의 테이블로 통합하므로 테이블당 크기가 감소하여 전체 테이블 스캔 시 유리
-> 수행 속도 감사
-> 복잡한 처리를 하는 SQL의 통합이 어려움
- 개별타입 기준 테이블 변환
-> 슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환
-> 슈퍼타입과 서브타입 테이블 사이에는 각각 1:1 관계가 형성
-> 저장공간이 상대적으로 작음
속성을 칼럼으로 변환
- 논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환
- 일반 속성 변환
-> 엔티티의 속성을 테이블의 각각의 컬럼으로 변환
-> 칼럼명은 SQL 예약어 사용을 피하고 가능한 한 짧게 지정
관계를 외래키로 변환
- 논리 데이터 모델에서 정의된 관계는 기본키와 이를 참조하는 기본키로 변환
관리 목적의 테이블/칼럼 추가
- 논리 데이터 모델에는 존재하지 않는 테이블이나 칼럼을 데이터베이스 관리 혹은 이용하는 프로그래밍의 수행 속도를 향상시키기 위해 물리 데이터 모델에 추가할 수 있음
데이터 타입 선택
- 정의된 논리적인 데이터 타입을 물리적인 DBMS의 물리적 특성과 성능을 고려하여 최적의 데이터 타입과 데이터의 최대 길이를 선택
- Oracle에서 자주 사용되는 데이터 유형
-> CHAR : 고정길이 문자열
-> VARCHAR : 가변 길이 문자열
-> NUMBER : 38 자릿수의 숫자 저장 가능
-> DATE : 날짜 저장
필기 정리
'2020(개정) 이후 정보처리기사 > 3과목 : 데이터베이스 구축' 카테고리의 다른 글
2020 정보처리기사 필기 - 3.3 SQL 응용(2) (4) | 2020.03.02 |
---|---|
2020 정보처리기사 필기 - 3.3 SQL 응용(1) (2) | 2020.03.02 |
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(3) (2) | 2020.02.27 |
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(2) (0) | 2020.02.26 |
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(1) (2) | 2020.02.25 |