(세종대학교) 데이터베이스 보안 - 수업 정리 내용
2.1. 데이터베이스 시스템 환경
2.1.1. 데이터베이스 관리 시스템
- DataBase Management System (DBMS)
- 데이터베이스를 관리하고 사용자의 데이터 처리 요구를 수행하는 시스템
- 다양한 관점의 사용자가 보낸 DDL, DML, DCL 처리해서 데이터베이스에 접근
- DBMS 구성 모듈
- 데이터 정의어 컴파일러
- 데이터 정의어로 작성된 스키마 정의 해석
- 저장 데이터 관리자의 도움을 받아 새로운 데이터베이스 구축 및 스키마의 정의를 데이터 사전에 저장
- 데이터 조작어 프리컴파일러
- 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
- 관련 없는 코드는 해당 언어의 컴파일러로 전달
- 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
- 데이터 조작어 컴파일러
- 데이터 조작어로 작성된 데이터 처리 요ㅛ구를 분석하여 런타임 데이터 베이스 처리기가 이해할 수 있도록 해석
- 런타임 데이터베이스 처리기
- 저장 데이터 관리를 통해 데이터베이스에 접근하여 DML 컴파일러부터 전달받은 데이터 처리 요구를 데이터베이스에 실제로 실행
- 트랜젝션 관리자
- 데이터베이스에 접근하는 과정에서 사용자의 접근 권한 유효 여부 검사
- 데이터베이스의 무결성 유지를 위한 제약조건 위반 여부 확인
- 저장 데이터 관리자
- 디스크에 저장되어 있는 데이터베이스와 데이터 사전 관리 및 접근 (운영체제 영역)
- 데이터 사전
- 데이터베이스에 저장되는 데이터에 관한 정보 저장 공간
- 시스템 카탈로그
- 스키마, 스키마 간의 매핑 정보, 제약조건 등을 저장
- 데이터에 대한 데이터 → 메타 데이터
- 데이터 사전 : 시스템 데이터 베이스 ↔ 일반 데이터베이스 : 사용자 데이터베이스
- 데이터 정의어 컴파일러
2.1.2. 데이터베이스 시스템 유틸리티
- 적재
- 기존의 데이터 파일들을 데이터베이스에 적재하기 위해 사용
- 파일 형식 자동 변환 및 저장
- 변환도구 : 기존의 데이터베이스와 새 데이터베이스의 저장상태(내부 스키마) 정보가 주어지면 적절한 적재 프로그램 생성
- 기존의 데이터 파일들을 데이터베이스에 적재하기 위해 사용
- 백업
- 데이터베이스 전체 또는 일부를 대용량 저장 매체에 복사해서 데이터베이스의 사본 생성
- 데이터베이스 복구 목적
- 데이터베이스 전체 또는 일부를 대용량 저장 매체에 복사해서 데이터베이스의 사본 생성
- 파일 재조직
- 성능을 향상시키기 위해 데이터베이스 파일들의 구조를 다른 파일 구조로 재조직하고 새로운 접근 경로 생성
- 성능 모니터링
- 데이터베이스 사용을 모니터링하여 데이터 베이스 관리자에게 사용 통계 제공
- 데이터베이스 관리자는 통계에 근거하여 성능 향상을 위한 여러 결정 가능
- 데이터베이스 사용을 모니터링하여 데이터 베이스 관리자에게 사용 통계 제공
- 기타 기능
- 파일정렬
- 데이터 압축
- 사용자 접근 모니터링
- 네트워크와의 인터페이스
2.2. DBMS 개요
2.2.1. 데이터베이스 관리 시스템 (DBMS)
- 개념
- 파일 시스템의 데이터 중복과 데이터 종속 문제 해결을 위해 제시된 소프트웨어
- 조직에 필요한 데이터를 데이터베이스에 통합하여 저장 및 관리
- 응용 프로그램을 대신하여 데이터베이스에 들어 있는 데이터를 삽입,삭제,수정,검색
- 모든 응용 프로그램이 데이터 베이스를 공유할 수 있게 하는 역할
- 장점
- 데이터 중복 통제
- 기존 파일 시스템의 문제점 해결
- 데이터 통합 관리로 일관성 유지
- 데이터 동시 공유
- 여러 응용 프로그램이 동일 데이터에 동시 접근할 수 있도록 지원
- 동일한 데이터를 각 프로그램의 요구에 맞게 다양한 구조로 제공
- 불필요한 데이터 중복 제한
- 여러 응용 프로그램이 동일 데이터에 동시 접근할 수 있도록 지원
- 데이터 보안 향상
- 기존 파일 시스템의 단점 해결
- 중복된 파일 보안 유지 어려움, 파일 단위 사용 권한 제한됨
- 중앙 집중식 데이터 관리로 효율적 접근 제어 가능
- 권한 없는 사용자의 접근, 허용되지 않은 데이터와 연산에 대한 요청 사전 차단 가능
- 사용자별 접근 가능한 데이터베이스 영역 차별화 가능
- 기존 파일 시스템의 단점 해결
- 데이터 무결성 유지
- 무결성 : 저장된 데이터 값의 정확성
- 데이터 연산이 수행될 때마다 유효성 검사하여 데이터 무결성 유지
- 장애 발생 시 회복 가능
- 일관성과 무결성 유지하면서 복구 기능 지원
- 데이터 중복 통제
- 단점
- 많은 비용 발생
- 따로 설치해야하므로 별도 비용 발생
- 동시 사용자 수에 따라 가격 증가
- 무료 DBMS와 기능적 차이 존재
- 복잡한 백업과 회복 방법
- 방대한 양과 복잡한 구조 및 동시 공유 기능 지원하는 데이터베이스 특성으로 장애 발생 시, 정확한 원인 및 상태 파악 어려움
- 중앙 집중 관리로 인한 취약점
- DBMS 장애 발생시 전체 시스템 업무 중단
- 많은 비용 발생
2.2.2. DBMS 발전 과정
- 1세대
- 네트워크 DBMS
- 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성
- 구조가 복잡하고 변경 어려움
- ex) IDS
- 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성
- 계층 DBMS
- 데이터베이스를 트리 형태로 구성
- 네트워크 DBMS보다 구조 단순
- 복잡현 현실 관계를, 부모-자식 트리로만 구성하기 어려움, 구조 변경 어려움
- ex) IMS
- 네트워크 DBMS
- 2세대
- 관계 DBMS
- 테이블 형태로 구성
- 1980년대부터 현재까지 사용
- ex) 오라클, MS SQL 서버, 액세스, 인포믹스, MySQL, 마리아DB 등
- 관계 DBMS
- 3세대
- 객체지향 DBMS
- 1980년대 후반 등장
- 객체 개념 이용해 데이터베이스 구성
- 새로운 유형의 데이터 저장 및 분석 처리 지원
- ex) 오투, 온투스, 젬스톤
- 객체 개념 이용해 데이터베이스 구성
- 1980년대 후반 등장
- 객체관계 DBMS
- 관계 데이터 모델에 객체지향 개념 도입한 객체관계 데이터 모델
- 객체지향 DBMS
- 4세대
- NoSQL (Not Only SQL) DBMS
- 비정형 데이터 저장 및 처리에 접합
- 안정성과 일관성 유지를 위한 기능 포기
- 데이터 구조 미리 정하지 않음
- 뛰어난 확장성
- 여러 대의 컴퓨터에 분산하여 저장 및 처리
- ex) 몽고DB, H베이스, 카산드라, 레디스 등
- 비정형 데이터 저장 및 처리에 접합
- NewSQL DBMS 등장 배경
- NoSQL DBMS가 관계 DBMS를 대첸ㄴ 불가능
- 관계 DBMS가 제공하는 안정성과 일관성 중시
- 정형 데이터의 비율 높음
- 정형 데이터와 비정형 데이터 처리를 위해 두 가지 DBMS 도입 부담
- 관계 DBMS + No SQL DBMS
- ex) 구글 스패너, 볼트 DB, 누오DB
- NoSQL (Not Only SQL) DBMS
2.3. 데이터베이스 사용자 및 DBMS 기능
2.3.1. 데이터베이스 사용자
- 사용자
- 데이터베이스를 이용하기 위해 접근하는 모든 사람
- 데이터베이스 관리자, 최종 사용자, 응용 프로그래머
- 데이터베이스 관리자 (DBA)
- Database Administrator
- 데이터베이스 운영, 관리 책임
- 주요 업무
- 데이터베이스 구성 요소 선정
- 사용자의 요구사항 분석 및 데이터베이스로 구성할 데이터 결정
- 데이터베이스 스키마 정의
- 스키마 설계 및 DDL 통해 DBMS에 구현
- 물리적 저장 구조와 접근 방법 결정
- 레코드 구조 설계
- 무결성 유지를 위한 제약조건 정의
- 보안 및 접근 권한 정책 결정
- 백업 및 회복 기법 정의
- 시스템 데이터베이스 관리 (데이터 사전 등)
- 시스템 서능 감시 및 성능 분석
- 데이터베이스 재구성
- 사용자의 요구/사용 형태 달라지는 경우, 향상이 필요한 경우, 장비가 교체된 경우 등
- 데이터베이스 구성 요소 선정
- 최종사용자 (일반 사용자)
- End User
- 데이터베이스에 접근하여 데이터 조작 수행
- 주로 DML 사용
- 구분
- 캐쥬얼 사용자
- 데이터베이스에 대한 이론적 지식 보유
- DML을 이용해 DBMS에 데이터베이스 조작 요청
- 초보 사용자
- 초보 수준으로 이용
- GUI 응용 프로그램을 통해 사용
- 캐쥬얼 사용자
- 응용 프로그래머
- 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터베이스에 접근하는 데이터 조작어를 삽입하는 사용자
- DDL도 사용하지만 주로 DML 사용
2.3.2. DBMS 기능
- 데이터베이스와 사용자 사이에서 중간자 역할
- 데이터베이스 동시 사용시 발생하는 모든 분쟁 중재 (여러 프로그램이나 사용자가 동시 접근할 때 방지)
- 데이터베이스 생성 및 접근, 관리 모두 담당
- 데이터베이스 결과만 응용 프로그램에 전달하므로 사용자가 물리적 구조 알 필요 없어짐
- 데이터베이스 구조나 접근 방법 변경시 DBMS에 관리하므로 사용자나 응용프로그램 변경 불필요 → 데이터 독립성 확보
- 기타 핵심 기능 (sql 관련)
- 정의 기능
- 조직에 적합한 데이터베에스 구조 정의 또는 수정
- 조작 기능
- 데이터베이스에 저장된 데이터에 접근하여 사용할 수 있는 기능제공
- 사용자 요구에 따라 연산 효율적으로 처리
- 제어 기능
- 무결성 유지를 위한 규칙 설정
- 보안 관련 정책 결정
- 정의 기능
2.4. DBMS 언어 (SQL)
- 프로그래밍 언어
- 특정 문제 해결 목적으로 사용
- 특정한 기능을 가지고 있는 어플리케이션을 만들기 위한 언어
- DBMS 언어
- 사용자가 DBMS와 통신하는 수단
- SQL
2.4.1. DBMS 언어 (SQL)
- SQL
- DBMS 내에서 데이터베이스 정의, 조작, 제어 기능을 이용하기 위한 수단
- 기능별 분류
- 데이터 정의어
- Data Definition Langauge (DDL)
- 데이터 조작어
- Data Manipulation Langauge (DML)
- 데이터 제어어
- Data Control Language (DCL)
- 데이터 정의어
2.4.2. DBMS 언어 종류
- 데이터 정의어
- Data Definition Langauge (DDL)
- 스키마 정의, 수정 또는 삭제
- 새로 만드려는 DB의 스키마 설명 또는 이미 정의된 스키마 구조 변경 또는 삭제를 위해 사용
- 데이터 사전에 저장
- 삭제나 수정 발생 시 내용 반영 → 나중에 참고 가능
- CREATE, ALTER, DROP
- 데이터 조작어
- Data Manipulation Langauge (DML)
- 데이터 삽입, 삭제, 수정, 검색 등의 처리 요구
- 실제 값(튜플)들 통제
- SELECT, INSERT, UPDATE, DELETE
- 데이터 제어어
- Data Control Language (DCL)
- 내부적으로 필요한 규칙이나 기법 정의
- 데이터 보안 기능 제공
- 사용자별 접근 및 사용 권한 부여/취소
- 변경 데이터에 대한 복구 기능 제공
- 무결성, 보안, 회복, 동시성 → 특징 보장 목적
- GRANT, REVOKE, COMMIT, ROLLBACK
2.5. DBMS 종류 및 특징
- 점유율 : 1. 오라클, 2. MySQL, 3. MS SQL 서버
2.5.1. Oracle
- 특징
- 1979년 oracle 개발, 관계형 DBMS
- 단일 데이터베이스 내에서 여러 데이터 모델 지원
- 클라우드 컴퓨팅에 초점
- 다양한 운영체제에서 사용 가능, 라이센싱 무료, 유료 옵션 존재
- 다양한 언어에서 지원
- 장점
- 향상된 데이터 보호, 백업, 복구 등의 지속적인 릴리즈를 통한 강력한 보안 제공
- 방대한 양의 데이터 수용 및 처리 가능
- 강력한 기술 지원과 문서 제공
- 단점
- 많은 비용
- 무료 버전 기능 제한적
- 유료 버전 비쌈
- 높은 하드웨어 사양 필요
- 제공되는 방대한 양의 문서 → 전문가 필요 수준
- 많은 비용
2.5.2. MySQL
- 특징
- 1995년 MySQL AB에서 개발
- 오픈 소스로 출발 나중에 오라클에서 소유
- 여러 운영체제 사용 가능
- 다양한 언어에서 지원
- 1995년 MySQL AB에서 개발
- 장점
- 오픈 소스로 무료로 사용 가능
- MySQL 커뮤니티 에디션
- 기타 선불 옵션
- 간단한 구문으로 다루기 쉬움
- 적은 하드웨어 사양으로 사용 가능
- 오픈 소스로 무료로 사용 가능
- 단점
- 오픈 소스로 사용 시 기술 지원 어려움
- 뛰어나지 않은 확장성
- 일부 표준 SQL 기능 미지원
2.5.3. MS-SQL
- 특징
- 완전히 상업적인 도구
- 1989년 MS에서 개발
- 일반적으로 SQL 표준의 확장인 Transact-SQL 언어 사용
- Windows, Linux 에서만 사용 가능
- 장점
- 강력한 기술 지원과 문서 제공
- 단점
- 많은 비용
- Windows와 Linux에서만 사용 가능
'학교수업 > 데이터베이스' 카테고리의 다른 글
데이터베이스 보안 - 4주차. 구조화 질의어 (SQL) (3) | 2025.04.12 |
---|---|
데이터베이스 보안 - 3주차. 관계형 데이터베이스 (RDB) (0) | 2025.04.12 |
데이터베이스 보안 - 1주차. 데이터 베이스 개요 (0) | 2025.04.11 |