데이터 보안과 인증: 데이터베이스 시스템의 핵심 원리
카테고리
인프라/DevOps/보안
서브카테고리
보안
대상자
- 데이터베이스 관리자, 보안 엔지니어, 소프트웨어 개발자
- 중간 수준의 기술 이해도 필요 (인증/인가 메커니즘 및 보안 프로토콜 기초 지식 요구)
핵심 요약
- 인증(Authentication)은 사용자 신분을 확인하는 과정으로, Username/Password, 생체 인식, Token 기반 시스템 등 다양한 방식을 사용 (예:
SELECT * FROM USERS WHERE username = 'ANKIT' AND password = '...'
). - 인가(Authorization)은 인증된 사용자가 데이터베이스 내에서 수행할 수 있는 특정 권한(INSERT, SELECT, ALTER 등)을 제어 (예:
GRANT SELECT ON CUSTOMERS TO ANKIT
). - 인증과 인가의 협업은 데이터 무결성, 기밀성, 가용성 보장의 핵심으로, RBAC(Role-Based Access Control) 방식이 일반적.
섹션별 세부 요약
1. 인증(Authentication)의 역할과 방법
- 기본 목적: 사용자 신분 확인을 통해 비인가 접근 차단 (예:
WHERE username = 'ANKIT' AND password = '...'
). - 주요 방법:
- Username/Password: 가장 일반적인 방식.
- 생체 인식: 지문, 얼굴 인식 등 생물학적 특성 활용.
- Token 기반 시스템: 일회용 코드 또는 디지털 토큰을 사용.
- 예시: 직원이 데이터베이스에 로그인 시, 입력한 자격 증명이 DB 내 기록과 일치하는지 확인 후 접근 허용.
2. 인가(Authorization)의 메커니즘과 예시
- 핵심 목적: 사용자 역할에 따라 데이터베이스 객체(테이블, 뷰 등)에 대한 특정 권한 부여.
- 권한 부여 예시:
- GRANT CONNECT TO ANKIT
: 데이터베이스 접속 허용.
- GRANT INSERT ON CUSTOMERS TO ANKIT
: 'CUSTOMERS' 테이블에 데이터 삽입 가능.
- GRANT SELECT ON CUSTOMERS TO ANKIT
: 'CUSTOMERS' 테이블 데이터 조회 가능.
- 제한 사항:
DELETE
권한이 없으면 데이터 삭제 불가 (예:ANKIT
는 'CUSTOMERS' 테이블에서 삭제 불가).
결론
- 인증과 인가의 결합은 데이터베이스 보안의 핵심으로, RBAC(Role-Based Access Control)을 기반으로 권한을 정의하고, 사용자 역할에 맞는 최소한의 권한만 부여하는 것이 실무에서 권장.