24|데이터베이스 보안·암호화·권한·분산 데이터베이스

글 요약

사무자동화산업기사 – 데이터베이스 보안과 암호화, 대칭키·공개키 방식, GRANT·REVOKE·트리거, 분산 데이터베이스의 투명성·구성·장단점을 정리합니다.

데이터베이스에는 개인정보·거래 내역·업무 기록처럼 보호해야 할 데이터가 저장됩니다. 허가받지 않은 사용자의 접근을 막는 것뿐 아니라, 전송·저장 과정에서 데이터가 노출되거나 변조되지 않도록 암호화와 권한 제어를 함께 적용해야 합니다.

이 장에서는 데이터베이스 보안과 분산 데이터베이스의 핵심을 정리합니다. 평문과 암호문의 변환 과정, 대칭키·공개키 암호화의 차이, GRANT·REVOKE와 트리거의 기능을 살펴본 뒤 분산 데이터베이스의 투명성·구성 요소·장단점·지역 자치성과 병렬 처리를 비교합니다.

이 장의 핵심 내용

  • 데이터베이스 보안은 인가되지 않은 접근·변경·유출로부터 데이터와 시스템을 보호하는 활동입니다.
  • 암호화는 평문을 키와 알고리즘으로 암호문으로 변환하고, 복호화는 이를 다시 평문으로 되돌립니다.
  • 대칭키 암호화는 암호화와 복호화에 같은 비밀키를 사용하며 처리 속도가 빠릅니다.
  • 공개키 암호화는 공개키와 개인키의 키 쌍을 사용하며 키 배포와 전자서명 등에 활용됩니다.
  • GRANT는 객체 권한을 부여하고, REVOKE는 이전에 부여한 권한을 회수합니다.
  • WITH GRANT OPTION은 받은 권한을 다른 사용자에게 다시 부여할 수 있게 합니다.
  • 트리거는 INSERT·UPDATE·DELETE 등의 이벤트가 발생했을 때 정해진 작업을 자동으로 실행합니다.
  • 분산 데이터베이스는 여러 위치의 데이터베이스를 하나의 논리적 시스템처럼 사용합니다.
  • 대표적인 투명성에는 위치·복제·병행·장애 투명성이 있습니다.
  • 분산 데이터베이스는 가용성·확장성·지역 자치성을 높일 수 있지만 설계와 운영이 복잡합니다.

데이터베이스 보안은 무엇을 보호하는가?

데이터베이스 보안(Security)은 권한이 없는 사용자의 접근과 조작을 차단하고, 허가된 사용자에게 필요한 범위의 데이터와 기능만 제공하는 활동입니다. 인증·권한 부여·암호화·감사·백업·회복을 함께 고려해야 합니다.

보안 목표영문의미대표 수단
기밀성Confidentiality인가된 사용자만 데이터에 접근함인증, 권한 제어, 암호화
무결성Integrity데이터가 허가 없이 변경되거나 훼손되지 않음제약조건, 권한, 감사 로그
가용성Availability필요한 사용자가 필요한 시점에 시스템을 사용할 수 있음백업, 복제, 장애 복구
데이터베이스 보안은 기밀성·무결성·가용성을 함께 유지해야 합니다.

보안은 접근을 무조건 차단하는 것이 아니라 사용자와 업무에 필요한 최소 권한만 정확하게 부여하는 것입니다.

암호화와 복호화는 어떤 과정으로 이루어지는가?

암호화(Encryption)는 사람이 읽을 수 있는 평문을 키와 암호 알고리즘으로 처리하여 알아보기 어려운 암호문으로 바꾸는 과정입니다. 복호화(Decryption)는 올바른 키를 사용하여 암호문을 원래의 평문으로 되돌리는 과정입니다.

단계입력처리출력
암호화평문암호 알고리즘과 암호화 키 적용암호문
복호화암호문복호 알고리즘과 복호화 키 적용평문

전송 중 암호화

네트워크를 통해 이동하는 데이터가 도청되지 않도록 보호합니다.

예: TLS를 이용한 클라이언트와 서버 간 통신

저장 데이터 암호화

디스크·백업 파일·데이터 파일이 유출되어도 내용을 바로 읽지 못하도록 보호합니다.

예: 데이터 파일·백업·민감 열 암호화

키 관리: 강한 알고리즘을 사용하더라도 키가 유출되면 암호문을 보호할 수 없습니다. 키는 데이터와 분리하여 안전하게 저장하고 교체·폐기 절차를 관리해야 합니다.

대칭키와 공개키 암호화는 무엇이 다른가?

암호화 기법은 키의 사용 방식에 따라 대칭키 암호화와 공개키 암호화로 구분할 수 있습니다.

비교 항목대칭키 암호화공개키 암호화
다른 명칭비밀키 암호화비대칭키 암호화
키 구성하나의 공유 비밀키공개키와 개인키의 키 쌍
암호화·복호화같은 비밀키 사용서로 다른 키 사용
처리 속도일반적으로 빠름일반적으로 느림
주요 장점대용량 데이터 암호화에 효율적사전에 비밀키를 공유하지 않아도 키 교환 가능
주요 단점비밀키 전달과 보관이 어려움연산 비용이 큼
대표 활용저장 데이터와 통신 내용 암호화키 교환, 전자서명, 인증
대표 알고리즘AES, ARIA, SEEDRSA, ElGamal, 타원곡선 기반 암호
실제 시스템에서는 공개키 방식으로 세션키를 교환하고 대칭키 방식으로 본문 데이터를 처리하는 혼합 방식을 많이 사용합니다.

대칭키 암호화 흐름

  • 송신자와 수신자가 같은 비밀키를 공유
  • 송신자가 비밀키로 암호화
  • 수신자가 같은 비밀키로 복호화

공개키 암호화 흐름

  • 수신자가 공개키를 공개하고 개인키는 비밀로 보관
  • 송신자가 수신자의 공개키로 암호화
  • 수신자가 대응하는 개인키로 복호화

알고리즘 주의: DES와 RC4는 시험 교재에서 예시로 등장할 수 있지만 현재 보안 환경에서는 취약하거나 사용이 제한되는 레거시 알고리즘입니다.

GRANT는 사용자에게 어떤 권한을 부여하는가?

GRANT는 사용자 또는 역할에 테이블·뷰·스키마 등의 데이터베이스 객체를 사용할 수 있는 권한을 부여하는 명령입니다.

GRANT SELECT, INSERT
ON 학생
TO 사용자1;

GRANT UPDATE
ON 학생
TO 사용자1
WITH GRANT OPTION;
구문 요소의미
권한SELECT, INSERT, UPDATE, DELETE 등 허용할 작업
ON 객체권한을 적용할 데이터베이스 객체
TO 사용자권한을 받을 사용자 또는 역할
WITH GRANT OPTION받은 권한을 다른 사용자에게 다시 부여할 수 있는 능력

최소 권한 원칙: 필요한 객체에 필요한 작업만 허용하고 업무에 불필요한 권한은 부여하지 않는 것이 안전합니다.

REVOKE는 권한과 재부여 권한을 어떻게 회수하는가?

REVOKE는 이전에 부여한 객체 권한이나 재부여 권한을 사용자 또는 역할로부터 회수하는 명령입니다.

REVOKE INSERT
ON 학생
FROM 사용자1;

REVOKE GRANT OPTION FOR UPDATE
ON 학생
FROM 사용자1
CASCADE;
구문효과
REVOKE 권한지정한 권한과 그 권한의 재부여 권한을 회수함
REVOKE GRANT OPTION FOR기본 권한은 유지하고 다른 사용자에게 다시 부여할 수 있는 능력만 회수함
CASCADE해당 사용자를 통해 전달된 종속 권한까지 연쇄적으로 회수함
(단, 사용자가 같은 권한을 다른 사용자나 역할로부터도 부여받았다면 해당 경로의 권한은 유지될 수 있음)
RESTRICT종속 권한이 있으면 회수를 거부함

GRANT는 권한을 부여하고 REVOKE는 권한을 회수하며, WITH GRANT OPTION은 권한의 재부여를 허용합니다.

트리거는 언제 자동으로 실행되는가?

트리거(Trigger)는 테이블이나 뷰에 INSERT·UPDATE·DELETE 등의 이벤트가 발생했을 때 DBMS가 미리 정의된 작업이나 트리거 루틴을 자동으로 실행하도록 설정한 객체입니다. 권한을 부여하는 명령은 아니며 데이터 변경에 반응하는 자동 처리 기능입니다.

CREATE TRIGGER 학생_변경_트리거
AFTER INSERT OR UPDATE OR DELETE
ON 학생
FOR EACH ROW
EXECUTE FUNCTION 학생_변경_기록();
구분설명대표 활용
BEFORE대상 명령이 실제로 반영되기 전에 실행입력값 검사·보정
AFTER대상 명령이 반영된 뒤 실행감사 로그·후속 처리
행 수준영향받는 각 행마다 실행행별 변경 기록
문장 수준SQL문 한 번에 대해 실행작업 단위 기록·통계

트리거의 장점

  • 참조 무결성과 업무 규칙 보조
  • 변경 이력과 감사 로그 자동 기록
  • 반복되는 후속 작업 자동화
  • 여러 응용 프로그램에 공통 규칙 적용

트리거의 단점

  • 실행 흐름을 파악하기 어려움
  • 숨은 자동 처리로 디버깅과 유지보수 복잡
  • 과도한 사용 시 성능 저하 가능
  • 트리거 간 연쇄 실행과 재귀 오류 가능

혼동 주의: 외래키의 참조 동작과 트리거는 모두 연쇄 처리를 만들 수 있지만 같은 기능은 아닙니다. 외래키는 참조 무결성 제약조건이고, 트리거는 지정한 이벤트에 반응하여 사용자 정의 작업을 실행합니다.

분산 데이터베이스는 무엇인가?

분산 데이터베이스(Distributed Database)는 네트워크로 연결된 여러 컴퓨터나 지역에 데이터가 물리적으로 분산되어 있지만, 사용자와 응용 프로그램에는 하나의 논리적인 데이터베이스처럼 보이도록 구성한 시스템입니다.

각 사이트의 데이터베이스는 독립적으로 운영될 수 있으며, 분산 DBMS는 로컬 데이터와 원격 데이터를 함께 조회·갱신하고 분산 트랜잭션을 조정합니다.

분산 데이터베이스

데이터 자체가 여러 사이트에 저장되며 전체 시스템이 하나의 논리적 데이터 원천처럼 동작합니다.

분산 처리

응용 프로그램의 작업을 여러 컴퓨터에 나누어 실행하는 처리 구조입니다. 데이터가 반드시 분산되어야 하는 것은 아닙니다.

분산과 복제: 분산은 데이터를 여러 위치에 나누어 저장하는 개념이고, 복제는 같은 데이터의 사본을 여러 위치에 유지하는 개념입니다. 한 시스템에서 두 방식을 함께 사용할 수 있지만 동일한 개념은 아닙니다.

분산 데이터베이스의 투명성에는 무엇이 있는가?

투명성(Transparency)은 데이터가 실제로 어디에 있고 어떻게 분산·복제·처리되는지를 사용자가 자세히 알지 않아도 하나의 데이터베이스처럼 사용할 수 있게 하는 성질입니다.

투명성영문사용자에게 숨기는 내용
위치 투명성Location Transparency데이터가 어느 노드·지역에 저장되어 있는지 숨김
중복·복제 투명성Replication Transparency데이터 사본의 수와 저장 위치를 숨김
병행 투명성Concurrency Transparency여러 사용자의 동시 접근과 병행 제어 과정을 숨김
장애 투명성Failure Transparency일부 노드·네트워크의 장애와 회복 과정을 가능한 범위에서 숨김
분산 데이터베이스의 투명성은 분산 환경의 복잡성을 사용자와 응용 프로그램으로부터 감추는 것이 목적입니다.

위치·복제·병행·장애 투명성은 각각 데이터의 위치, 사본, 동시 처리, 장애 복구의 복잡성을 숨깁니다.

분산 데이터베이스 시스템은 어떤 요소로 구성되는가?

구성 요소주요 역할
지역 데이터베이스각 사이트에서 실제 데이터와 로컬 트랜잭션을 관리함
지역 DBMS각 사이트의 저장·질의·회복·권한을 독립적으로 관리함
분산 DBMS 또는 조정자여러 사이트의 질의와 분산 트랜잭션을 통합·조정함
통신 네트워크사이트 사이에서 질의·데이터·제어 정보를 전달함
분산 처리 노드질의와 업무를 여러 컴퓨터에서 나누어 처리함

분산 데이터베이스의 장점과 단점은 무엇인가?

분산 데이터베이스의 장점

  • 가까운 지역의 데이터를 처리하여 응답 시간을 줄일 수 있음
  • 복제와 장애 우회로 가용성과 신뢰성을 높일 수 있음
  • 노드와 저장장치를 단계적으로 확장하기 쉬움
  • 여러 노드에서 질의와 업무를 병렬로 처리할 수 있음
  • 지역 조직의 업무와 관리 요구를 반영하기 쉬움

분산 데이터베이스의 단점

  • 설계·개발·운영과 장애 분석이 복잡함
  • 분산 트랜잭션과 일관성 유지 비용이 증가함
  • 네트워크 지연이나 단절이 전체 처리에 영향을 줄 수 있음
  • 사이트별 보안·권한·백업 정책을 함께 관리해야 함
  • 통신량이 많으면 오히려 질의 성능이 저하될 수 있음

성능 주의: 분산 처리와 데이터 지역성은 성능을 높일 수 있지만 원격 데이터 전송과 분산 조인이 많으면 네트워크 비용 때문에 중앙 집중형 구조보다 느려질 수도 있습니다.

지역 자치성과 병렬 처리는 무엇인가?

지역 자치성

각 사이트가 로컬 데이터·사용자·보안·백업과 운영 정책을 일정 범위에서 독립적으로 관리하는 성질입니다.

핵심: 중앙 통합과 지역 독립성의 균형

병렬 처리

하나의 질의나 여러 업무를 여러 노드에 나누어 동시에 실행하여 처리량과 응답 성능을 높이는 방식입니다.

핵심: 작업 분할과 결과 통합

지역 자치성의 한계: 각 사이트가 독립적으로 운영되더라도 전체 분산 트랜잭션과 데이터 일관성을 유지하기 위한 공통 규칙과 조정은 필요합니다.

시험에서 자주 혼동되는 개념

대칭키와 공개키

대칭키는 같은 비밀키로 암호화·복호화하고, 공개키 방식은 공개키와 개인키의 키 쌍을 사용합니다.

GRANT OPTION과 기본 권한

GRANT OPTION은 권한 자체가 아니라 받은 권한을 다른 사용자에게 다시 부여할 수 있는 능력입니다.

트리거와 권한 부여

트리거는 이벤트에 따라 작업을 자동 실행하고, GRANT·REVOKE는 사용자의 객체 접근 권한을 관리합니다.

분산과 복제

분산은 데이터를 여러 위치에 배치하는 개념이고, 복제는 같은 데이터의 사본을 여러 위치에 유지하는 개념입니다.

위치 투명성과 장애 투명성

위치 투명성은 데이터의 저장 장소를 숨기고, 장애 투명성은 노드나 네트워크 장애와 회복의 영향을 숨깁니다.

분산 데이터베이스와 분산 처리

분산 데이터베이스는 데이터의 저장 위치가 분산되고, 분산 처리는 작업의 실행을 여러 컴퓨터에 나눕니다.

보안은 데이터 접근과 사용을 통제하고, 투명성은 분산 환경의 복잡성을 사용자에게 드러내지 않는 성질입니다.

이번 장 핵심 요약

  1. 데이터베이스 보안은 인가되지 않은 접근·유출·변조로부터 데이터와 시스템을 보호합니다.
  2. 암호화는 평문을 암호문으로 바꾸고 복호화는 암호문을 다시 평문으로 되돌립니다.
  3. 대칭키 암호화는 같은 비밀키를 사용하고 처리 속도가 빠릅니다.
  4. 공개키 암호화는 공개키와 개인키의 키 쌍을 사용합니다.
  5. GRANT는 객체 권한을 부여하고 REVOKE는 권한을 회수합니다.
  6. WITH GRANT OPTION은 받은 권한을 다른 사용자에게 다시 부여할 수 있게 합니다.
  7. REVOKE GRANT OPTION FOR는 기본 권한은 유지하고 재부여 권한만 회수합니다.
  8. 트리거는 지정한 데이터 변경 이벤트가 발생할 때 자동으로 실행됩니다.
  9. 분산 데이터베이스는 여러 위치의 데이터베이스를 하나의 논리적인 시스템처럼 제공합니다.
  10. 위치 투명성은 데이터의 물리적 위치를 숨깁니다.
  11. 복제 투명성은 데이터 사본의 수와 위치를 숨깁니다.
  12. 병행 투명성은 다중 사용자의 동시 접근과 제어 과정을 숨깁니다.
  13. 장애 투명성은 일부 사이트의 장애와 회복 과정을 가능한 범위에서 숨깁니다.
  14. 분산 데이터베이스는 가용성·확장성·지역 자치성과 병렬 처리에 유리할 수 있습니다.
  15. 분산 구조는 네트워크 비용과 설계·보안·회복의 복잡성을 증가시킬 수 있습니다.

복습 문제

권한이 없는 사용자의 접근과 조작으로부터 데이터베이스를 보호하는 활동은?

데이터베이스 보안입니다.

평문을 알아보기 어려운 암호문으로 바꾸는 과정은?

암호화입니다.

암호화와 복호화에 같은 비밀키를 사용하는 방식은?

대칭키 또는 비밀키 암호화 방식입니다.

공개키와 개인키의 키 쌍을 사용하는 방식은?

공개키 또는 비대칭키 암호화 방식입니다.

사용자에게 SELECT·INSERT·UPDATE 등의 객체 권한을 부여하는 명령은?

GRANT입니다.

권한을 다시 부여할 수 있는 능력만 회수하는 구문은?

REVOKE GRANT OPTION FOR입니다.

INSERT·UPDATE·DELETE 등의 이벤트가 발생했을 때 자동으로 실행되는 객체는?

트리거입니다.

데이터의 실제 저장 위치를 사용자가 알 필요가 없도록 하는 성질은?

위치 투명성입니다.

데이터 사본의 수와 저장 위치를 사용자에게 숨기는 성질은?

복제 투명성 또는 중복 투명성입니다.

일부 노드의 장애와 회복 과정을 사용자에게 숨기는 성질은?

장애 투명성입니다.

각 사이트가 로컬 데이터와 운영 정책을 일정 범위에서 독립적으로 관리하는 성질은?

지역 자치성입니다.

분산 데이터베이스의 투명성에 해당하지 않는 것으로 자주 출제되는 항목은?

매체 접근 투명성은 교재에서 제시하는 위치·복제·병행·장애 투명성에 포함되지 않습니다.

참고자료

이 글은 사무자동화산업기사 시험 범위에 포함된 데이터베이스 보안·암호화·권한 관리·트리거와 분산 데이터베이스를 이해하고 복습할 수 있도록 재구성한 정리입니다. 암호 알고리즘의 안전성, GRANT·REVOKE·트리거 문법, 분산 트랜잭션과 투명성의 구현 방식은 표준과 DBMS에 따라 차이가 있으므로 실제 시험에서는 문제에 제시된 정의와 최신 Q-Net 출제기준을 함께 확인해야 합니다.


같은 주제의 다른 글

이 글과 같은 카테고리에 있는 이전 글과 다음 글을 확인해보세요.