Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

DBMS 보안, 무결성 및 권한 부여 완벽 가이드

데이터베이스 관리 시스템(DBMS)에서 보안과 무결성은 안정적인 데이터 운영의 핵심 축입니다. 이 글에서는 데이터베이스 보안의 두 가지 핵심 요소인 인증(Authentication)권한 부여(Authorization), 그리고 데이터 품질을 지키는 무결성(Integrity) 제약 조건까지 체계적으로 살펴봅니다.

데이터베이스 보안(Database Security)

데이터베이스 보안은 여러 계층으로 구성되어 있으며, 그중 가장 중요한 두 가지 축은 바로 '인증'과 '권한 부여'입니다.

1. 인증(Authentication)

사용자 인증은 데이터베이스에 접근하려는 사람이 실제로 자신이 주장하는 신원이 맞는지 확인하는 절차입니다. 인증은 운영체제(OS) 수준에서 이루어질 수도 있고, 데이터베이스 자체 수준에서 수행될 수도 있습니다.

또한 망막 스캐너나 생체 인식(bio-metrics)과 같은 고급 인증 시스템을 활용하면, 승인되지 않은 사용자가 데이터베이스에 접근하는 것을 효과적으로 차단할 수 있습니다.

2. 권한 부여(Authorization)

권한 부여는 데이터베이스 관리자(Database Administrator)가 사용자에게 제공하는 특권입니다. 사용자는 자신에게 허가된 범위의 데이터만 조회할 수 있으며, 나머지 영역에는 접근할 수 없습니다.

권한 부여의 유형

  • 기본 권한(Primary Permission): 사용자에게 공개적이고 직접적으로 부여되는 권한입니다.
  • 2차 권한(Secondary Permission): 그룹 단위로 부여되며, 해당 그룹에 속한 사용자에게는 자동으로 적용됩니다.
  • 공개 권한(Public Permission): 모든 사용자에게 공개적으로 부여되는 권한입니다.
  • 상황 민감형 권한(Context-sensitive Permission): 민감한 데이터와 관련된 권한으로, 선별된 일부 사용자에게만 부여됩니다.

사용자에게 부여할 수 있는 권한 등급

  • 시스템 관리자(System Administrator): 사용자에게 부여할 수 있는 최고 수준의 관리 권한입니다. 이 권한을 가진 사용자는 데이터베이스 복원(restoration)이나 업그레이드(upgrade) 같은 데이터베이스 관리자 명령도 실행할 수 있습니다.
  • 시스템 제어(System Control): 최고 수준의 제어 권한입니다. 데이터베이스에 대한 유지보수 작업은 수행할 수 있지만, 데이터에 직접 접근할 수는 없습니다.
  • 시스템 유지보수(System Maintenance): 시스템 제어 권한보다 낮은 수준의 권한입니다. 데이터베이스 매니저 인스턴스(instance) 범위 내에서 유지보수 작업을 수행할 수 있습니다.
  • 시스템 모니터(System Monitor): 이 권한을 가진 사용자는 데이터베이스를 모니터링하고 스냅샷(snapshot)을 생성할 수 있습니다.

데이터베이스 무결성(Database Integrity)

데이터베이스에서의 데이터 무결성(data integrity)이란 데이터의 정확성(correctness), 일관성(consistency), 완전성(completeness)을 의미합니다. 데이터 무결성은 다음 세 가지 무결성 제약 조건(integrity constraints)을 통해 강제됩니다.

  • 개체 무결성(Entity Integrity): 기본 키(primary key) 개념과 관련된 제약 조건입니다. 모든 테이블은 각 행(row)을 고유하게 식별할 수 있고 NULL 값이 아닌 자신만의 기본 키를 가져야 합니다.
  • 참조 무결성(Referential Integrity): 외래 키(foreign key) 개념과 관련된 제약 조건입니다. 외래 키란 한 릴레이션(relation)의 키가 다른 릴레이션에서 참조되는 경우를 말하며, 테이블 간 관계의 일관성을 보장합니다.
  • 도메인 무결성(Domain Integrity): 데이터베이스의 모든 컬럼(column)이 반드시 정의된 도메인(domain) 범위 내의 값을 가져야 한다는 제약 조건입니다.

이처럼 인증과 권한 부여로 외부 위협으로부터 데이터베이스를 보호하고, 세 가지 무결성 제약 조건으로 데이터의 품질을 유지함으로써 안정적이고 신뢰할 수 있는 데이터베이스 환경을 구축할 수 있습니다.