KR101292430B1 - 영역 기반 보안 - Google Patents

영역 기반 보안 Download PDF

Info

Publication number
KR101292430B1
KR101292430B1 KR1020077021934A KR20077021934A KR101292430B1 KR 101292430 B1 KR101292430 B1 KR 101292430B1 KR 1020077021934 A KR1020077021934 A KR 1020077021934A KR 20077021934 A KR20077021934 A KR 20077021934A KR 101292430 B1 KR101292430 B1 KR 101292430B1
Authority
KR
South Korea
Prior art keywords
security
zone
objects
component
descriptor
Prior art date
Application number
KR1020077021934A
Other languages
English (en)
Other versions
KR20080013856A (ko
Inventor
지콴 리
탄모이 듀따
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080013856A publication Critical patent/KR20080013856A/ko
Application granted granted Critical
Publication of KR101292430B1 publication Critical patent/KR101292430B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 계층형 관계들을 갖는 데이터베이스 객체들에 영역 기반 보안을 제공하는 시스템 및 방법에 관한 것이다. 일 양태에서, 데이터베이스 보안 및 관리를 용이하게 하는 시스템이 제공된다. 이 시스템은 서로 간에 계층형 관계를 갖는 복수의 객체들을 저장하는 데이터베이스 컴포넌트를 포함한다. 영역 컴포넌트는 상기 객체들의 서브세트에 대한 보안 구역들(security zones)을 정의하고 보안 데이터를 상기 서브세트에 매핑하고, 상기 보안 구역들은 상기 객체들 간의 상기 계층형 관계와 독립적이거나, 분리되거나, 또는 분열된다.
보안, 계층구조, 영역

Description

영역 기반 보안{REG10N-BASED SECURITY}
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 더 구체적으로는, 고전적인 객체 계승 계층구조(classical object inheritance hierarchies)의 데이터 전파 및 저장 요건들을 완화하기 위하여 객체들의 서브세트에 대한 영역 설명자(region descriptor)에 기초하여 그 객체들의 서브세트에 보안을 제공하는 시스템 및 방법에 관한 것이다.
최근의 상업적 데이터베이스 설계는 대량의 데이터를 저장하고, 관리하고, 조작하는 방법을 수반하는 다수의 복잡한 데이터 고려사항들을 포함한다. 그러한 데이터는 종종 여러 객체들 간에 계승 속성들을 제공하는 객체 트리(object tree)에서와 같은 다른 데이터에 얽힌 관계들을 포함한다. 이러한 유형의 관계들은 종종 그러한 데이터를 관리하기 위한 데이터베이스 및 컴포넌트들의 효율적인 설계를 복잡하게 한다. 예를 들면, 데이터베이스 설계 프로세서에 대한 하나의 양태는 관계형 데이터베이스(relational database) 관리 시스템이 데이터를 저장하는 방법을 이해하는 것에 있다. 효율적으로 그리고 정확하게 사용자들에게 정보를 제공하기 위하여, 데이터베이스 프로그램은 개별 테이블들에 저장된 상이한 주제에 관한 사실들(데이터)에 액세스할 필요가 있다. 예를 들면, 하나의 테이블은 종업 원(employee)들에 관한 사실들만을 저장할 수 있고, 또 하나의 테이블은 판매(sales)에 관한 사실들만을 저장할 수 있고, 다른 테이블들은 어떤 다른 법인 문제(corporate matter)에 대한 것일 수 있다. 데이터를 이용할 때, 이들 사실들은 자동으로 결합되어 여러 가지 방법으로 제공된다. 예를 들면, 사용자들은 종업원들에 관한 사실들과 판매에 관한 사실들을 결합시키는 리포트를 인쇄할 수 있다.
일반적으로, 데이터베이스를 설계하기 위하여, 정보는 라이브러리 내의 개별 주제들과 같은 어떤 순서로 분류되고 그 후 데이터베이스 프로그램이 그 주제들이 어떻게 관련되는지를 판정한다. 이들 프로그램들은 종종 구조적 질의 언어(SQL : Structured Query Language)와 같은 공통의 데이터베이스 언어를 이용한 관계형 데이터베이스 질의(relational database query)를 포함한다. 그러한 언어들이 데이터에 적용되기 전에, 통상적으로 어느 유형의 데이터가 중요한지 그리고 그러한 데이터가 어떻게 조직되어야 하는지에 대하여 몇몇 판정들이 행해진다. 예를 들면, 이들 판정들은 어느 데이터를 저장할지를 판정하기 위해 데이터베이스의 범위를 결정하는 것을 포함할 수 있다. 그 후 "종업원(Employees)" 또는 "주문(Orders)"과 같은 개별 주제들로 정보를 분할하는 데 필요한 테이블들을 결정하는 것을 포함할 수 있다. 그 후 각 주제는 데이터베이스 내의 테이블이 될 것이다. 다른 양태들은 각 테이블에 어떤 정보를 저장할지를 판정하기 위해 요구되는 각각의 필드들을 결정하는 것을 포함한다. 테이블 내의 정보의 각 카테고리는 필드라 불리며 테이블 내의 열(columns)로서 표시된다. 예를 들면, 종업원 테이블 내의 하나의 필드는 성(Last Name)일 수 있고; 또 하나의 필드는 고용 날짜(Hire Date)일 수 있다. 또 하나의 고려사항은 하나의 테이블 내의 데이터가 다른 테이블들 내의 데이터에 어떻게 관련되는지를 판정하는 것과 같은 관계들을 결정하는 것이다. 설계자들은 종종 필요에 따라 테이블들에 필드를 추가하거나 새로운 테이블들을 생성하여 관계들을 명확하게 한다.
데이터베이스를 설계할 때 부닥칠 수 있는 몇몇 공통의 함정들이 있다. 이들 문제들은 데이터를 사용하고 관리하는 것을 더 어렵게 할 수 있다. 이들은 모두 동일한 주제에 관련되지 않은 다수의 필드들을 갖는 하나의 테이블을 갖는 것을 포함할 수 있다. 예를 들면, 하나의 테이블은 고객들에 관한 필드들은 물론 판매 정보를 포함하는 필드들도 포함할 수 있다. 또한, 각 테이블이 하나의 주제에 관한 데이터만을 포함한다면 종종 더 효율적이다. 다른 경우에, 필드들이 다수의 레코드들에 적용할 수 없는 것이기 때문에 그 다수의 레코드들에서 고의로 필드들이 공백으로 남게 되는 경우 부담(overhead)이 생긴다. 이것은 통상적으로 그 필드들이 또 다른 테이블에 속한다는 것을 의미한다. 다수의 테이블들이 있고 그 중 다수가 동일한 필드들을 갖는 경우 중복(redundancy)이 또 다른 문제이다. 예를 들면, 1월 판매 및 2월 판매에 대한 테이블들을 분리시키거나, 근거리 고객들(local customers) 및 원거리 고객들(remote customers)에 대한 테이블들을 분리시키는 경우, 동일한 유형의 정보의 중복 저장이 생긴다. 따라서, 하나의 기법은 단일 주제에 관한 모든 정보를 하나의 테이블에 합체시키는 것이다.
데이터베이스의 테이블들 및 필드들을 셋업하고 설계하는 방법의 복잡성 외에도, 다른 고려사항들이 취해져야 한다. 이들은 각각의 테이블들 및 필드들에 대 하여 어떻게 데이터 보안이 제공되어야 하는지를 포함한다(예컨대, 누가 또는 무엇이 파일에 액세스할 수 있는지와 같은 보안). 이것은 계층형 객체들과 같은 데이터베이스들에 저장된 복잡한 구조들에 대한 보안을 제공하는 방법을 포함한다. 고전적으로, 보안 고려사항들은 그러한 객체들에 대한 계승 계층구조로 전파되어 왔고, 계층구조 내의 아이템들 중 하나가 변경되면 계층구조 내의 각 아이템이 업데이트될 필요가 있을 것이다. 그러나, 계층형 객체들을 저장하기 위해 관계형 데이터베이스의 테이블 행들을 이용하는 임의의 구현이 직면하는 공통의 문제가 있는데, 그것은 각 객체에 대한 보안 정보 또는 데이터를 설정하고 그 보안 데이터를 계승 모델에 기초하여 그것의 자식 객체들에 파퓰레이트(populate)하는 방법이다.
<발명의 요약>
이하에서는 본 발명의 일부 양태들에 대한 기본적인 이해를 제공하기 위해 본 발명의 간략화한 개요를 제시한다. 이 개시는 본 발명의 광범위한 개관은 아니다. 그것은 본 발명의 중요한/결정적인 구성요소들을 식별하려고 하는 것이 아니다. 그것의 유일한 목적은 나중에 제시되는 보다 상세한 설명의 서두(prelude)로서 본 발명의 일부 개념들을 간략화한 형태로 제시하기 위한 것이다.
본 발명은 서로 간에 계층형 관계를 갖는 복수의 데이터베이스 객체들에 영역 기반 보안을 제공하는 시스템 및 방법에 관한 것이다. 계층구조에 관계없는 하나 이상의 보안 구역(security zones)을 생성하기 위해 그 계층구조로 존재하는 객체들의 서브세트에 보안 정보를 매핑하는 영역 컴포넌트(region component)가 제공 된다. 이것은 영역 또는 구역에 존재하는 객체들이 보안 속성들을 공유하여 데이터 처리 요건들을 완화하는 것을 가능케 한다(예컨대, 보안 데이터를 업데이트할 보다 적은 수의 노드들). 일반적으로, 고전적인 데이터베이스 아키텍처들은 종종 관계형 데이터베이스의 테이블 행들을 이용하여 계층형 객체들을 저장하고, 이것은 또한 관련 보안 설명자가 각 객체에서 설정되게 하고, 또한 그 보안 설명자를 계승 모델에 기초하여 각각의 자식 객체들에 파퓰레이트하게 한다. 이것은 각 객체 업데이트에 대한 처리 시간의 양을 더욱 증가시키고 영역 기반 고려사항들을 도입함으로써 완화된다.
영역은 동일하거나 유사한 보안 설명자를 공유하는 객체들의 컬렉션(collection)일 수 있다(연속 트리(contiguous tree)에 있을 필요는 없다). 객체에 대한 보안 설명자가 업데이트될 경우, 그 객체가 속하는 영역은 분열(split) 또는 붕괴(collapse)할 수 있다. 예를 들면, 그 변경으로 인해 임의의 자식 객체에 대한 상이한 보안 설명자가 생기면 영역이 분열할 수 있는 데 반하여, 그 변경이 다른 영역의 보안 설명자와 동일한 보안 설명자로 귀결되면 영역이 그 다른 영역 내로 붕괴한다. 각 객체가 그 자신의 보안 설명자를 직접 소유하는 대신에, 영역이 보안 설명자를 소유하고, 따라서 다른 객체들에 대한 보안 설명자들에 영향을 미칠 수 있는 객체에 대한 보안 설명자가 변경될 때 객체 업데이트의 수가 극적으로 감소한다.
일반적으로, 영역은 고전적으로는 계층형 객체 모델 내의 객체들의 서브 트리로서 정의된다. 본 발명의 경우, 영역은 동일한 보안 설명자를 공유하는 객체들 의 세트로서 정의되고, 따라서 동일한 보안 설명자를 공유하는 객체들은 동일한 서브 트리 아래에 있을 필요가 없다. 이러한 간접적 조치(indirection)는 객체의 보안 설명자들을 관리하는 효율적인 처리를 가능케 한다. 따라서, 영역 기반 보안은 본질적으로 객체 도메인을 보안 설명자 도메인으로 변환하고 계층구조로부터 직접 및 간접적으로 보안 설명자 도메인 상에서 보안 설명자 동작들을 수행하여 전체 데이터베이스 처리를 경감시킨다.
전술한 목적 및 관련 목적들의 달성을 위하여, 본 발명의 소정의 예시적 양태들이 이하의 설명 및 첨부 도면들과 관련하여 본 명세서에서 설명된다. 이들 양태들은 본 발명이 실시될 수 있는 다양한 방식들을 나타내고, 이 모두를 본 발명에 의해 망라하려고 한다. 본 발명의 다른 이점들 및 신규한 특징들은 이하의 발명의 상세한 설명을 도면들과 관련하여 고찰함으로써 명백해질 것이다.
도 1은 본 발명의 일 양태에 따른 객체 보안 시스템을 도시하는 개략 블록도이다.
도 2는 본 발명의 일 양태에 따른 예시적 보안 도메인 변환을 도시하는 도면이다.
도 3은 본 발명의 일 양태에 따른 대안적 보안 도메인 변환을 도시한다.
도 4는 본 발명의 일 양태에 따른 예시적 보안 인터페이스들을 도시한다.
도 5는 본 발명의 일 양태에 따른 영역 컴포넌트 처리를 도시한다.
도 6은 본 발명의 일 양태에 따른 예시적 영역 처리 알고리즘들을 도시한다.
도 7은 본 발명의 일 양태에 따른 보안 영역 처리를 도시한다.
도 8은 본 발명의 일 양태에 따른 적당한 운영 환경을 도시하는 개략 블록도이다.
도 9는 본 발명과 상호작용할 수 있는 샘플 컴퓨팅 환경의 개략 블록도이다.
본 발명은 계층형 관계들을 갖는 데이터베이스 객체들에 영역 기반 보안을 제공하는 시스템 및 방법에 관한 것이다. 각 객체에 대한 개별 보안 설명자를 업데이트하는 것이 아니라, 본 발명은 영역의 개념을 도입하고, 따라서 주어진 객체에 대한 보안이 계층구조에 반하여 영역에 대한 그것의 결합(association)으로부터 파생된다. 이것은 개개의 객체 설명자들을 필요로 하고 계승 계층구조에 의해 부과된 보안을 갖는 고전적인 아키텍처들과 대조를 이룬다. 이런 식으로, 다수의 객체들이 각각의 영역에 대하여 보다 전체적인 규모로 정의될 수 있는 유사한 보안 속성들을 공유할 수 있으므로 데이터 처리 및 저장이 절약될 수 있다. 일 양태에서는, 데이터베이스 보안 및 관리를 용이하게 하는 시스템이 제공된다. 이 시스템은 서로 간에 계층형 관계를 갖는 복수의 객체들을 저장하는 데이터베이스 컴포넌트를 포함한다. 영역 컴포넌트는 객체들의 서브세트에 대한 보안 구역들을 정의하고 그 서브세트에 보안 데이터를 매핑하고, 보안 구역들은 객체들 간의 계층형 관계들로부터 독립적이거나, 분리(decouple), 또는 분열(disassociate)된다.
본원에서 사용될 때, "컴포넌트", "시스템", "객체", "구역(zone)" 등의 용어들은 하드웨어이든, 하드웨어와 소프트웨어의 조합이든, 소프트웨어이든, 또는 실행 중인 소프트웨어이든, 컴퓨터 관련 엔티티를 나타내려고 하는 것이다. 예를 들면, 컴포넌트는, 프로세서 상에서 실행 중인 프로세스, 프로세서, 객체, 실행 파일(executable), 실행 스레드(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있지만, 이들에 제한되는 것은 아니다. 예시로써, 서버 상에서 실행 중인 애플리케이션과 서버 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트들이 프로세서 및/또는 실행 스레드 내에 존재할 수 있고 컴포넌트는 하나의 컴퓨터 상에 국한되거나 및/또는 2 이상의 컴퓨터들 간에 분산될 수 있다. 또한, 이들 컴포넌트들은 각종 데이터 구조가 저장되어 있는 각종 컴퓨터 판독가능 매체로부터 실행될 수 있다. 컴포넌트들은 로컬 및/또는 원격 프로세스들을 통하여 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예컨대, 그 신호를 통하여 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는, 및/또는 인터넷과 같은 네트워크를 가로질러 다른 시스템들과 상호작용하는 하나의 컴포넌트로부터의 데이터)에 따라서 통신할 수 있다.
우선 도 1을 참조하면, 본 발명의 일 양태에 따른 객체 보안 시스템(100)이 도시되어 있다. 이 시스템(100)은 하나 이상의 객체 보안 구역들(130)을 정의하는 영역 컴포넌트(120)(또는 컴포넌트들)와 관련되어 있는 관계형 데이터베이스(110)(예컨대, SQL 또는 다른 유형의 데이터베이스)를 포함한다. 일반적으로, 객체 계층구조의 개개의 노드들(예컨대, 참조 번호 140으로 지시된 계층구조의 하나의 객체 참조)은 객체 보안 변경이 행해질 때 개별적으로 업데이트되지 않는다. 그보다는, 130의 각각의 보안 구역들마다 영역 컴포넌트(120)에 의해 보안 정책들(security policies)이 할당된다. 각 객체를 개별적으로 업데이트하기보다 객체들을 보안 구역(130)에 매핑함으로써, 데이터베이스(110)에서의 판독/기입 동작들의 수가 경감될 수 있다. 따라서, 영역 컴포넌트(120)는 보안 정책 매핑을 각 객체가 업데이트되는 계승 계층구조로부터 객체들의 구역들이 유사한 보안 정책을 공유하는 객체들의 보안 도메인으로 변환한다. 이런 식으로 고전적인 계승 계층구조에서는 각 개개의 객체를 업데이트하는 것에 반하여 단지 저감된 보안 구역들(130)의 서브세트를 업데이트하는 것만으로 객체의 보안 정책이 변경될 때 보다 작은 보안 업데이트들의 서브세트가 전파될 수 있다. 시스템(100)에서 정책을 전파하기 위해 계승 개념이 채용될 수 있지만, 트리 내의 객체들 간의 종래의 계승이 아니라 보안 구역들(130) 간에 계승이 이루어진다는 것에 유의한다. 따라서, 객체 도메인이 아니라 보안 도메인에서 모델링되는 컴포넌트들 간에 계승이 일어난다. 이것은 각각의 개체에 대한 보안 매핑들이 개개의 객체(140)마다 명시적으로 착수되는 것이 아니라 객체와 그것의 관련 구역(130) 간에 이루어진다는 것을 의미한다. 그러므로, 영역 컴포넌트(120)는 식별된 객체들의 영역에 보안을 제공하고 계층구조 내의 모든 객체들에 보안 변경들을 전파하는 종래의 객체 계층구조들과 본질적으로 분리되거나, 분열되거나, 또는 독립적이다.
일반적으로, 데이터베이스(110) 내의 아이템들에는 보안 설명자용의 (식별자) ID가 할당될 수 있다. 데이터베이스는 SDID(Security Descriptor ID)라 불리는 열(column)을 갖는 [Table!Item] 테이블을 포함한다. 이 SSID는 예를 들어 숨겨진 SQL 시스템 테이블에 저장되고 유지되는 보안 설명자의 고유 ID이다. 시스템 테이블은 공개 뷰(public view)(예컨대, Sys.Security_Descriptor)를 통하여 노출된다. 다음 테이블은 어떻게 보안 설명자가 기본 객체 모델에 플러그 인되거나 그것과 결합될 수 있는지에 대한 간략화한 예시이다:
[Table!Item]: 아이템을 보안 식별자 ID와 관련시킨다.
ItemID ... _SDId ...
[Sys.Security_Descriptor]: ID를 보안 설명자의 콘텐츠에 매핑한다.
Sd_id Type SecurityDescriptor ...
보안 설명자 ID(SD ID)를 객체 아이템에 효율적으로 할당하기 위하여, SD 영역 기술은 대부분의 객체 아이템들이 동일한 보안 설명자를 공유하는 경향이 있다는 관찰에 부분적으로 기초하고 있다. SD 영역은 동일하거나 유사한 SD ID를 공유하는 아이템들(종래의 시스템들에서와 같이 연속적일 필요는 없다)의 세트이다. 전형적으로, 위에 도시된 [Table!Item] 내의 모든 아이템들은 상이한 SD 영역들로 그룹화될 수 있다. SD 영역들의 관계는 상술한 보안 도메인에서 하나의 SD 영역의 SD가 또 다른 SD 영역의 SD로부터 계승될 수 있도록 수립될 수 있다. 본질적으로, 대응하는 객체 아이템 트리에 필적하지만, 아래 도 2 및 3에 관련하여 보여지는 바와 같이 보다 적은 수의 노드들을 갖는 SD 영역 트리가 수립된다. 따라서 SD 영역 트리는 아이템의 SD를 효율적으로 업데이트하는 데 이용될 수 있다. 전형적으로 보안 아이템 트리가 생성될 때, 실질적으로 트리 내의 모든 아이템들에 SD들을 할당하도록 3개의 SD 영역들이 생성된다. 따라서, 하나의 SD 영역은 (명시적 SD가 정의되는) 루트 아이템에 대한 것이고, 또 하나의 SD 영역은 각각의 컨테이너 아이템들에 대한 것이고, 마지막 SD는 논-컨테이너(non-container) 아이템들에 대한 것이다.
이제 도 2 및 3을 참조하면, 본 발명의 일 양태에 따른 예시적 보안 도메인 변환(200 및 300)이 도시되어 있다. 도 2의 200에, 객체 트리의 노드들이 도시되어 있고, 여기서 흑색 노드(210)는 루트 아이템이고; 회색 노드들(220)은 컨테이너 아이템들이고, 백색 노드들(230)은 논-컨테이너 아이템들이다. 아이템의 보안 설명자(SD)가 업데이트될 경우(예컨대, SD의 소유자, 그룹, 액세스 컨트롤 리스트(Access Control List) 등을 변경함으로써), 해당 아이템이 속하는 SD 영역은 240에 예시된 바와 같이 3개의 서브그룹 또는 서브세트로 분할될 수 있다. 보안 변경들은 일반적으로 명시적 또는 암시적 형태일 수 있는 ACE(Access Contry Entry)라 불리는 데이터를 통하여 실행된다. 명시적 ACE들이 아이템의 SD에 추가될 경우, 이 아이템 주위에 새로운 SD 영역들이 생성될 수 있다. 이 경우, 3개의 영역이 생성되는데, 하나는 (명시적 ACE들이 추가되는) 그 아이템 자체에 대한 것이고, 하나는 그것의 컨테이너 자식에 대한 것이고 하나는 그것의 논-컨테이너 자식에 대한 것이다. 도 3을 참조하면, 310의 아이템 상의 SD에 비전파 명시적 ACE가 추가되는 경우의 보다 복잡한 상황이 예시되어 있는데, 이 경우 320에 예시된 바와 같이 아이템 주위에 5개의 새로운 영역들이 생성된다. 이 경우, 하나의 영역은 (명시적 ACE가 추가되는) 아이템 자체(330)에 대하여 생성되고, 하나의 영역은 그것의 직계(direct) 컨테이너 자식(340)에 대한 것이고, 하나의 영역은 그것의 직계 논-컨테이너 자식(350)에 대한 것이고, 하나의 영역은 그것의 비직계(non-direct) 컨테이너 자식(360)에 대한 것이고, 하나의 영역은 그것의 비직계 논-컨테이너 자식(370)에 대한 것이다.
도 2 및 3을 요약하자면, 아이템의 SD가 (계승을 통해서가 아니라) 명시적으로 업데이트될 때 새로운 영역들이 생성될 수 있다. 일반적으로, SD에 행해지고 있는 업데이트들에 따라서 3개 또는 5개의 새로운 영역들(다른 양도 가능함)이 생성된다. 비전파(non-propagated) ACE가 추가되면 5개의 SD 영역들이 생성되고 다른 경우에는 일반적으로 3개의 영역들이 생성된다. 일례로, 그 SD가 비계승(non-inherited) 속성들(대부분의 경우 비계승 ACE들)을 포함하는 아이템을 루트 아이템으로 가정하자. 위에서 지적한 바와 같이, 컨테이너 유형 루트 아이템은 SD 내의 명시적 ACE들의 유형들에 따라서 3개 또는 5개의 SD 영역들을 소유할 수 있다. 논-컨테이너는 그것의 SD가 명시적 속성들을 가지면 그 자신의 SD 영역을 가질 수 있다. 만일 루트 아이템의 SD의 명시적 속성들 전부가 제거되면, 이 루트 아이템에 의해 소유되는 SD 영역들은 그것의 부모 아이템의 SD 내로 붕괴될 수 있고, 따라서 개개의 객체 보안 업데이트들이 경감된다. 각 SD 영역은 다음의 예와 같은 Security_Hierachy 테이블 내의 행으로서 표현될 수 있다.
[Table!Security_Hierachy]: SD 계승 관계를 저장하고 동일한 보안 설명자를 공유하도록 아이템들을 수립한다.
_SDIdParent _SDId _RootItemID _IsContainer _Scope
상기 테이블의 열들은 SD 영역의 ID인 _SDId, 그로부터 계승 속성들이 유래되는 SD의 ID인 _SDIdParent 필드, 명시적 SD가 정의되는 아이템의 ID인 _RootItemID 필드, SD가 컨테이너에 적용되면 1이고, 논-컨테이너에 적용되면 0인 _IsContainer, 및 SD가 루트 아이템에 적용되면 0으로, SD가 루트 아이템의 자식들에만 적용되면 1로, SD가 루트 아이템의 직계 자식들에 적용되면 2로, SD가 루트 아이템의 비직계 자식들에 적용되면 3으로 인코딩되는 _Scope 필드를 포함할 수 있다.
데이터베이스가 부트스트랩(bootstrap)될 때, 원한다면 3개의 디폴트 보안 설명자들이 생성될 수 있다; 상위 루트 아이템에 대한 하나의 설명자와, 모든 컨테이너 자식들에 대한 하나의 설명자와, 모든 논-컨테이너 자식들에 대한 하나의 설명자. 따라서, 상위 루트 아이템 상의 3개의 SD 영역들이 또한 생성될 수 있다. 전형적으로, 대량으로 후속 생성되는 모든 아이템들은 그 SD들 중 하나를 그것의 디폴트 SD로서 가질 수 있다. 명시적 ACE들이 아이템에 추가될 때, 위에서 논한 바와 같이 새로운 SD 영역들이 생성될 수 있다.
도 4는 본 발명의 일 양태에 따른 예시적 보안 인터페이스들(400)을 도시한다. 상술한 영역 기반 고려사항들과 인터페이스하기 위해 다양한 보안 인터페이스들(400)이 제공될 수 있다. 이하에서는 적용될 수 있는 인터페이스 예들을 몇 개만 설명한다. 이것들은 보안 데이터를 검색하기 위한 인터페이스들(410), 보안 정보를 설정하기 위한 인터페이스들(420), 링크들을 유지하기 위한 인터페이스들을 포함할 수 있고, 이들에 대해서는 아래에서 보다 상세히 설명한다. 다음의 코드 단편은 이들 인터페이스들(400)의 일부에 대한 공개 선언(public declaration)의 예이다.
Figure 112007068965016-pct00001
다음은 보안 인터페이스들(410 내지 430)에 대한 간단한 설명을 제공한다:
public string GetSDDLSecurity() - 아이템에 대한 전체 보안 설명자를 SDDL 문자열(string) 포맷으로 검색한다. 이것은 계승된 명시적 ACLs(Access Control Lists)를 포함한다.
public GenericSecurityDescriptor GetSecurity() - 아이템에 대한 전체 보안 설명자를 Managed ACLs 클래스 GenericSecurityDescriptor의 포맷으로 검색한다.
public void SetSDDLSecurity (string id, SECURITY_INFORMATION si) - 아이템에 대한 보안 설명자를 설정한다. 이 함수는 계승된 ACE들을 무시한다. 이것은 계승된 ACE들을 그것의 부모들 및 다른 유지 링크(holding link)들로부터 재생성한다. 이것은 소유자, 그룹, 컨트롤 플래그 또는 명시적 ACE들을 설정하기 위해 호출될 수 있다.
SECURITY_INFORMATION은 보안 설명자의 어느 부분이 업데이트될 것인지를 지정한다.
public void SetSecurity(GenericSecurityDescriptor gsd, SECURITY_INFORMATION si) - 아이템에 대한 보안 설명자를 설정한다. Managed ACLs 클래스를 입력 파라미터로서 취한다.
public void AddHoldingLink(Guid itemID) - 새로운 유지 링크를 아이템에 추가할 때 아이템에 대한 보안 설명자를 업데이트한다.
public void RemoveHoldingLink(Guid itemID) - 새로운 유지 링크를 아이템으로부터 제거할 때 아이템에 대한 보안 설명자를 업데이트한다.
public string GetUserEffectiveSecurity() - 현 보안 컨텍스트에 관련된 ACE들을 포함하는 아이템에 대한 보안 설명자를 검색한다.
도 5는 본 발명의 일 양태에 따른 영역 컴포넌트 처리(500)를 도시한다. 510에서는, 영역 정의들이 제공된다. 이들은 동일한 SD를 공유하는 아이템들이 세트인 보안 설명자(SD) 영역을 포함한다. 아이템들의 세트는 연속 트리를 형성하지 않아도 된다. 보안 계층구조(SH) 행은 아래 목록화된 [Table!Security_Hierachy] 테이블 내의 행이다. 각 SD 영역은 테이블에 SH 행을 가져야 한다.
_ParentSDId _SDId _RootItemId _IsConatiner _Scope
SD0 SD1 ItemId 0 3
상기 테이블 내의 행은 SD 영역에 대응하는 SH 행이라 불린다. 이 테이블 내의 행들은 아이템들의 세트(단일 아이템일 수 있다)가 동일한 보안 설명자(상기 예에서는 SD1)를 공유한다는 것을 나타낸다. 아이템들의 세트는 공통의 루트(ItemId), 공통의 유형(컨테이너 또는 논-컨테이너) 및 범위에 의해 정의된다. 범위는 상이한 운영 체제 보안 모델들을 지원하기 위한 옵션이다.
520에서는, 영역 합병 및 생성 고려사항들이 기술된다. 이 양태에서는, 다음의 조건들 하에서 하나의 새로운 SD 영역이 생성될 수 있다:
1. 논-컨테이너 아이템에 대하여 행해진 SD 변경들.
다음 조건들 하에서는 3개의 새로운 SD 영역이 생성될 수 있다:
1. 컨테이너 아이템에 대하여 행해진 SD 변경들, 및
2. SD 변경들이 비전파 ACE들을 포함하지 않는다.
다음 조건들 하에서는 5개의 새로운 SD 영역이 생성될 수 있다:
1. 컨테이너 아이템에 대하여 행해진 SD 변경들, 및
2. SD 변경들이 비전파 ACE들을 포함한다.
다음 조건들 하에서는 SD 영역들이 합병될 수 있다:
1. 부모 SD가 자식 SD들을 플러시(flush)함으로써 SD 계승을 실시하고 있거나, 또는
2. 명시적 ACE들이 SD로부터 제거된다.
530에서는, 도 6에 관련하여 설명되는 다음의 알고리즘에서 채용될 수 있는 각종 표기법들이 제공된다. 이들 표기법들은 다음을 포함한다:
_Item 또는 * - 연산들을 적용하는 현 아이템 시스템.
SDId(x) 또는 SDId - 아이템 x에 대한 보안 설명자의 sd_id.
SDId_NC(x) 또는 SDId_NC - 이 SDId는 아이템 x의 논-컨테이너 자식 객체들에 적용된다.
SDId_C(x) 또는 SDId_C - 이 SDId는 아이템 x의 컨테이너 자식 객체들에 적용된다.
SDId_NC2(x) 또는 SDId_NC2 - 이 SDId는 아이템 x의 직계 논-컨테이너 자식 객체들에 적용된다.
SDId_C2(x) 또는 SDId_C2 - 이 SDId는 아이템 x의 직계 컨테이너 자식 객체들에 적용된다.
SDId_NC3(x) 또는 SDId_NC3 - 이 SDId는 아이템 x의 비직계 논-컨테이너 자식 객체들에 적용된다.
SDId_C3(x) 또는 SDId_C3 - 이 SDId는 아이템 x의 비직계 컨테이너 자식 객체들에 적용된다.
SHRow(x,i,j) - _RootItemId = x, _IsContainer = i, _Scope = j인 [Table!Security_Hierachy] 테이블 내의 행.
UpdateItemSD(OldSDId, NewSDId, RootItem, IsContainer, Scope) - 그것의 현 SDId = OldSDId이고, Scope 내에서 조상이 RootItem인 유형(IsContainer)의 모든 아이템들의 SDId를 NewSDId로 업데이트한다.
UpdateSDBlob(SDId) - 그것의 자식들의 SDId가 이 SDId와 사이클을 형성하지 않으면 이 SDId와 그것의 자식들의 보안 설명자들의 콘텐츠를 업데이트한다. 예를 들면, [Table!Security_Hierachy] 테이블 내에 그 자신의 행을 갖고 있지 않은 (SD1을 갖는) 파일 아이템에 (SD0를 갖는) 유지 링크가 추가될 때, 3개의 행 (SD0, SD1, _Item, 0, 0), (SD1, SD0, _Item, 0, 1), (SD1, SD0, _Item, 1, 1)이 생성될 것이다. 여기서 이 아이템의 자식 아이템들에 대한 SD0를 재사용하여 [Table!Item] 테이블에서의 업데이트들의 수를 현저히 감소시킨다.
UpdateSDId(SDId, SDId_New) - _SDId = SDId인 [Table!Security_Hierachy] 내의 현 아이템의 행들을 업데이트하여 _SDId = SDId_New를 설정한다.
UpdateParentSDId(SDIdPar, SDIdPar_New) - _ParentSDId = SDIdPar인 [Table!Security_Hierachy]의 행들을 업데이트하여 _ParentSDId = SDIdPar_New를 설정한다.
CreatNewSD(SDId) - 현 SD와 행해지고 있는 변경들(ACD 추가/제거, 유지 링크 추가/제거)을 더한 것으로부터 새로운 SD를 생성한다.
도 6은 본 발명의 일 양태에 따른 예시적 영역 처리 알고리즘들(600)을 도시한다. 이 양태에서는, 영역 처리를 실행하기 위해 적어도 3개의 개별 또는 조합 알고리즘들(600)이 채용될 수 있다. 이들은 보안 설명자 설정(Set security descriptor)(610); 유지 링크 추가(Add holding link)(620); 및 유지 링크 제거(Remove holding link) 알고리즘(630)을 포함한다. 보안 설명자 설정(610)에 관련하여, 객체에 대한 보안 설명자를 변경하는 다양한 방법들이 있고, 적어도 다음을 포함한다:
- 계승 불가능한 명시적 ACE 추가/제거.
- 이 아이템 및 그것의 모든 자식들에 적용되는 계승 가능한 명시적 ACE 추가/제거.
- 자식들에만 적용되는 계승 가능한 명시적 ACE 추가/제거.
- 이 아이템 및 그것의 자계 자식들에만 적용되는 계승 가능한 명시적 ACE 추가/제거.
- 자식 컨테이너들에만 적용되는 계승 가능한 명시적 ACE 추가/제거.
- 자식 객체들에만 적용되는 계승 가능한 명시적 ACE 추가/제거.
- 특정 유형의 객체들에만 적용되는 계승 가능한 명시적 ACE 추가/제거.
- 보안 설명자의 소유자 변경
- 보안 설명자의 그룹 변경
- 보안 설명자 컨트롤 플래그 변경
ⅰ. ACE의 계승 정지
ⅱ. ACE의 계승 시작
ⅲ. 이 아이템에만 적용되는 다른 컨트롤 플래그 변경
620에서는, 유지 링크가 아이템에 추가될 때, 이 아이템에 대한 보안 설명자는, 그 유지 링크가 계승 가능한 ACE를 갖는지 여부 및 이 아이템에 대한 SD가 SE_DACLE_PROTECTED 플래그를 갖는지 여부에 따라서 변경되거나 변경되지 않을 수 있다. 그러나, [Table!Security_Hierachy] 테이블은 업데이트되어야 한다. 유지 링크가 아이템에 추가될 때, 아이템이 지정된 행을 아직 갖고 있지 않다면 아이템에 대한 3개의 새로운 행들이 [Table!Security_Hierachy] 테이블에 추가되어야 한다. [Table!Item] 테이블에서의 업데이트를 감소시키기 위하여, 이들 행들을 생성하는 데 다음 포맷들: (SD0, SD1, *, 0, 0), (SD1, SD0, *, 0, 1), (SD1, SD0, *, 1, 1)이 사용될 수 있고 여기서 SD0는 유지 링크의 타깃 아이템의 구(old) SDId이고, SD1은 타깃 아이템의 새로운 SDId이다. 이러한 스킴에 의해, [Table!Item] 테이블에서 소스 아이템만을 업데이트할 필요가 있을 것이다. 이러한 스킴에 기초하여, 나중에 이 아이템에 명시적 계승 불가능한 ACE가 추가되면, [Table!Item] 테이블에서 업데이트를 수행하지 않는다. 630에서는, 제거될 유지 링크에 대한 보안 설명자의 SDId가 SDId_HD라고 가정할 수 있다. 유지 링크를 제거하는 경우에, SD 영역들이 붕괴할 수 있고, 따라서 [Table!Security_Hierachy] 내의 행들이 합병될 수 있다.
도 7은 본 발명의 일 양태에 따른 데이터베이스 객체 보안에 대한 예시적 보안 영역 처리(700)를 도시한다. 설명의 간소화를 위하여, 이 방법은 일련의 또는 다수의 단계(act)들로 도시되고 기술되어 있지만, 본 발명은 단계들의 순서에 의해 제한되지 않는다는 것을 이해해야 할 것이다. 몇몇 단계들은, 본 발명에 따라서, 여기에 도시되고 기술된 것으로부터 상이한 순서로 및/또는 다른 단계들과 동시에 행해질 수 있기 때문이다. 예를 들면, 숙련된 당업자라면 방법이 대안적으로, 상태도(state diagram)에서와 같이, 일련의 상호 관련된 상태들 또는 이벤트들로서 표현될 수도 있다는 것을 이해할 것이다. 또한, 본 발명에 따른 방법을 실시하기 위하여 도시된 모든 단계들이 요구되지 않을 수도 있다.
도 7의 710으로 진행하여, 고전적인 객체 계층구조에서의 임의의 잠재적인 업데이트를 고려하여 (보안 면에서(security wise)) 각 객체가 업데이트될 요건을 제거함으로써 데이터베이스 내의 각각의 객체들에 대한 보안 설명자들이 고전적인 객체 계층구조로부터 분리 또는 분열된다. 720에서는, 하나 이상의 보안 설명자를 이용하여 데이터베이스에 존재하는 객체들에 대한 객체 영역들을 정의한다. 위에서 지적한 바와 같이, 이것은 보안 영역들 또는 영역의 유사한 보안 데이터에 서브스크라이브(subscribe)하는 객체 서브세트들을 정의하기 위하여 유사하거나 다른 객체 트리들로부터 객체 보안 데이터를 붕괴 또는 합병하는 것을 포함할 수 있다. 또한, 그러한 영역 데이터는 영역에 속하는 다른 객체들에의 결과적 관계를 포함하여 데이터베이스의 행에 정의될 수 있다. 730에서는, 데이터베이스 내의 선택된 영역들마다 객체 보안 정책들이 설정된다. 위에서 지적한 바와 같이, 액세스 컨트롤 엔트리(Access Control Entry)의 유형(암시/명시적) 및 객체 계층구조에서의 보안 변경의 위치에 따라서, 다양한 보안 영역들이 그러한 설정들로부터 생성될 수 있다. 740에서는, 데이터베이스 내의 보안 변경들을 전파하기 위하여 고전적인 객체 도메인과 본 발명의 보안 도메인 간의 변환이 행해진다. 이것은 주어진 객체에 대하여 보안 변경이 요구될 때 그 객체 주위에 영역 서브세트들을 생성하는 것을 포함할 수 있다(예컨대, 보안 변경 유형에 따라서 3개 또는 5개의 영역들을 생성).
도 8을 참조하면, 본 발명의 각종 양태들을 구현하기 위한 예시적 환경(810)이 컴퓨터(812)를 포함한다. 컴퓨터(812)는 처리 장치(814), 시스템 메모리(816) 및 시스템 버스(818)를 포함한다. 시스템 버스(818)는 시스템 메모리(816)를 포함하지만 이에 제한되지 않는 시스템 컴포넌트들을 처리 장치(814)에 결합한다. 처리 장치(814)는 각종 이용 가능한 프로세서들 중 어떤 것이라도 될 수 있다. 듀얼 마이크로프로세서 및 기타 멀티프로세서 아키텍처도 처리 장치(814)로서 채용될 수 있다.
시스템 버스(818)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 또는 외부 버스, 및/또는 임의의 각종 이용 가능한 버스 아키텍처를 이용하는 로컬 버스를 포함하는 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있고, 11-비트 버스, ISA(Industry Standard Architecture), MCA(Micro Channel Architecture) EISA(Enhanced ISA), IDE(Intelligent Drive Electronics), VESA 로컬 버스(VLB), PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), AGP(Advanced Graphics Port), PCMCIA(Personal Computer Memory Card International Association bus), 및 SCSI(Small Computer Systems Interface)를 포함하지만 이에 제한되는 것은 아니다.
시스템 메모리(816)는 휘발성 메모리(820) 및 비휘발성 메모리(822)를 포함한다. 시동 중과 같이 컴퓨터(812) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)은 비휘발성 메모리(822)에 저장되어 있다. 예로서, 비휘발성 메모리(822)는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable ROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리(820)는 외부 캐시 메모리로서 기능하는 RAM(random access memory)를 포함하지만, 이에 제한되는 것은 아니다. RAM은 SRAM(synchronous RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), ESDRAM(enhanced SDRAM), SLDRAM(Synhlink DRAM), 및 DRRAM(direct Rambus RAM)과 같은 다수의 형태로 이용 가능하지만, 이에 제한되는 것은 아니다.
컴퓨터(812)는 또한 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 도 8은 예를 들어 디스크 기억장치(824)를 도시한다. 디스크 기억장치(824)는 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 재즈(Jaz) 드라이브, 집(Zip) 드라이브, LS-100 드라이브, 플래시 메모리 카드, 또는 메모리 스틱을 포함하지만, 이에 제한되는 것은 아니다. 또한, 디스크 기억장치(824)는 CD-ROM(compact disk ROM device), CD-R 드라이브(CD recordable drive), CD-RW 드라이브(CD rewritable drive) 또는 DVD-ROM(digital versativle disk ROM drive)와 같은 광 디스크를 포함하는, 그러나 이에 제한되지 않는, 다른 기억 매체와 별개로 또는 그와 조합하여 기억 매체를 포함할 수 있다. 디스크 기억장치(824)를 시스템 버스(818)에 접속하는 것을 용이하게 하기 위하여, 통상적으로 인터페이스(826)와 같은 이동식 또는 비이동식 인터페이스가 이용된다.
도 8은 사용자와 적당한 운영 환경(810)으로 기술된 기본 컴퓨터 자원들 간에 매개물로서 기능하는 소프트웨어를 기술한다는 것을 이해해야 할 것이다. 그러한 소프트웨어는 운영 체제(828)를 포함한다. 디스크 기억장치(824) 상에 저장될 수 있는 운영 체제(828)는 컴퓨터 시스템(812)의 자원들을 제어 및 할당하도록 기능한다. 시스템 애플리케이션들(830)은 시스템 메모리(816)에 또는 디스크 기억장치(824) 상에 저장된 프로그램 모듈들(832) 및 프로그램 데이터(834)를 통하여 운영 체제(828)에 의한 자원들의 관리를 이용한다. 본 발명은 각종 운영 체제 또는 운영 체제들의 조합으로 구현될 수 있다는 것을 이해해야 할 것이다.
사용자는 입력 장치(들)(836)를 통하여 명령 또는 정보를 컴퓨터(812)에 입력한다. 입력 장치들(836)은 마우스, 트랙볼(trackball), 스타일러스, 터치 패드와 같은 포인팅 장치, 키보드, 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너, TV 튜너 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라 등을 포함하지만, 이에 제한되지 않는다. 이들 및 기타 입력 장치는 인터페이스 포트(들)(838)를 경유하여 시스템 버스(818)를 통하여 처리 장치(814)에 접속된다. 인터페이스 포트(들)(838)는, 예를 들면 시리얼 포트, 병렬 포트, 게임 포트, USB(universal serial bus)를 포함한다. 출력 장치(들)(840)는 입력 장치(들)(836)와 동일한 유형의 포트들의 일부를 이용한다. 따라서, 예를 들면, USB 포트는 컴퓨터(812)에 입력을 제공하고, 컴퓨터(812)로부터 출력 장치(840)로 정보를 출력하는 데 이용될 수 있다. 출력 어댑터(842)는, 여러 출력 장치들(840) 중에서, 특별한 어댑터들을 필요로 하는, 모니터, 스피커, 및 프린터와 같은 몇몇 출력 장치들(840)이 있다는 것을 예시하기 위해 제공되어 있다. 출력 어댑터들(842)은 예로서 출력 장치(840)와 시스템 버스(818) 간에 접속 수단을 제공하는 비디오 및 사운드 카드를 포함하지만 이에 제한되는 것은 아니다. 원격 컴퓨터(들)(844)와 같은 다른 장치들 및/또는 장치들의 시스템들이 입력 및 출력 둘 다의 성능들을 제공한다는 것에 유의해야 할 것이다.
컴퓨터(812)는 원격 컴퓨터(들)(844)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속들을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(844)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반 가전제품, 피어 장치 또는 기타 통상의 네트워크 노드 등일 수 있고, 통상적으로 컴퓨터(812)에 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 간결함을 위하여, 메모리 기억장치(846)만이 원격 컴퓨터(들)(844)와 함께 도시되어 있다. 원격 컴퓨터(들)(844)는 네트워크 인터페이스(848)를 통하여 컴퓨터(812)에 논리적으로 접속되고 그 후 통신 접속(850)을 통하여 물리적으로 접속된다. 네트워크 인터페이스(848)는 LAN(local-area networks) 및 WAN(wide-area networks)과 같은 통신 네트워크들을 포함한다. LAN 기술은 FDDI(Fiber Distributed Data Interface), CDDI(Copper Distributed Data Interface), 이더넷/IEEE 802.3, 토큰 링/IEEE 802.5 등을 포함한다. WAN 기술은 포인트-투-포인트 링크, ISDN(Integrated Services Digital Networks) 및 그 변형들과 같은 회로 스위칭 네트워크, 패킷 스위칭 네트워크, 및 DSL(Digital Subscriber Lines)을 포함하지만, 이에 제한되는 것은 아니다.
통신 네트워크(들)(850)는 네트워크 인터페이스(848)를 버스(818)에 접속하기 위해 이용되는 하드웨어/소프트웨어를 나타낸다. 설명의 명료함을 위하여 컴퓨터(812) 내부에 통신 접속(850)이 도시되어 있지만, 그것은 컴퓨터(812) 외부에 있을 수도 있다. 네트워크 인터페이스(848)에의 접속에 필요한 하드웨어/소프트웨어는, 단지 예시를 위하여, 정규 전화 등급 모뎀, 케이블 모뎀 및 DSL 모뎀, ISDN 어댑터, 및 이더넷 카드와 같은 내장 및 외장 기술을 포함한다.
도 9는 본 발명과 상호작용할 수 있는 샘플 컴퓨팅 환경(900)의 개략 블록도이다. 시스템(900)은 하나 이상의 클라이언트(들)(910)를 포함한다. 클라이언트(들)(910)는 하드웨어 및/또는 소프트웨어일 수 있다(예컨대, 스레드, 프로세스, 컴퓨팅 장치). 시스템(900)은 또한 하나 이상의 서버(들)(930)를 포함한다. 서버(들)(930)도 하드웨어 및/또는 소프트웨어일 수 있다(예컨대, 스레드, 프로세스, 컴퓨팅 장치). 서버들(930)은 예를 들어 본 발명의 이용하여 변환을 수행하는 하우스 스레드(house threads)일 수 있다. 클라이언트(910)와 서버(930) 간의 하나의 가능한 통신은 2 이상의 컴퓨터 프로세스들 사이에서 송신되게 되어 있는 데이터 패킷의 형태로 될 수 있다. 시스템(900)은 클라이언트(들)(910)와 서버(들)(930) 간의 통신을 용이하게 하기 위해 이용될 수 있는 컴퓨터 프레임워크(950)를 포함한다. 클라이언트(들)(910)는 클라이언트(들)(910)에 로컬인 정보를 저장하기 위해 이용될 수 있는 하나 이상의 데이터 저장소(들)(960)에 동작 가능하게 접속된다. 유사하게, 서버(들)(930)는 서버(들)(930)에 로컬인 정보를 저장하기 위해 이용될 수 있는 하나 이상의 데이터 저장소(들)(940)에 동작 가능하게 접속된다.
위에서 설명된 것은 본 발명의 예들을 포함한다. 물론, 본 발명을 설명할 목적으로 생각할 수 있는 모든 조합의 컴포넌트들 또는 방법들을 기술하는 것은 불가능하지만, 통상의 지식을 가진 당업자라면 본 발명의 다수의 추가적인 조합들 및 변경들이 가능하다는 것을 인지할 것이다. 따라서, 본 발명은 첨부된 청구항들의 정신 및 범위에 속하는 그러한 변경, 변형 및 변화들을 포함하는 것이 의도된다. 또한, 상세한 설명 또는 청구항들에서 "includes"라는 용어가 사용되는 한, 그러한 용어는 "comprising"이 청구항에서 전이구(transitional word)로서 이용될 때 해석되는 것과 유사하게 총괄적인 것으로 의도된다.

Claims (26)

  1. 데이터베이스 보안 및 관리를 용이하게 하도록 구성된 프로세서 및 메모리를 포함하는 시스템으로서,
    상기 시스템은,
    복수의 객체 간의 하나 이상의 제1 계승 관계(inheritance relationships)에 근거하여 상기 복수의 객체 간의 제1 계층형 관계(hierarchical relationship)를 갖는 상기 복수의 객체를 저장하는 데이터베이스 컴포넌트;
    복수의 보안 구역(security zones)을 정의하는 영역 컴포넌트 - 각각의 보안 구역은 상기 보안 구역에 대한 보안 속성을 기술하는 대응 보안 설명자(security descriptor) 및 상기 대응 보안 설명자를 식별하는 대응 보안 설명자 식별자(security descriptor identifier)에 연관되고, 상기 복수의 보안 구역은 상기 보안 구역 간의 하나 이상의 제2 계승 관계에 기초하여 상기 보안 구역 간에 제2 계층형 관계를 형성하고, 상기 보안 구역의 제2 계층형 관계는 상기 복수의 객체 간의 제1 계층형 관계와는 독립되며 상이함 - ; 및
    상기 복수의 객체를 이루는 각 객체를 복수의 보안 구역 중 하나의 보안 구역의 대응 보안 설명자 식별자와 연관시키는 매핑 컴포넌트 - 상기 매핑 컴포넌트에 의해, 상기 복수의 객체 중 특정 대응 보안 설명자를 공유하는 하나 이상의 객체가 상기 특정 대응 보안 설명자를 갖는 특정 보안 구역의 일부가 되고, 또한 상기 복수의 객체를 이루는 각 객체에 대한 액세스(access)는, 상기 복수의 객체 간의 상기 제1 계층적 관계가 아니라 상기 객체와 연관된 상기 보안 구역에서 정의된 상기 대응 보안 설명자에 의해 결정됨 -
    를 포함하는 시스템.
  2. 제1항에 있어서,
    상기 영역 컴포넌트 및 상기 매핑 컴포넌트는 하나 이상의 데이터베이스 테이블을 포함하는, 시스템.
  3. 제1항에 있어서,
    상기 객체에 대한 아이템 식별자를 상기 보안 구역에 대한 상기 대응 보안 설명자 식별자와 연관시킴으로써 객체를 보안 구역과 연관시키는, 시스템.
  4. 제1항에 있어서,
    특정 객체와 연관된 특정 보안 설명자의 변경에 대한 요청에 응답하여, 상기 영역 컴포넌트가 보안 구역을 분리하거나 통합하는, 시스템.
  5. 제4항에 있어서,
    상기 특정 객체는 컨테이너 객체(a container object)이고, 상기 영역 컴포넌트는 상기 보안 구역을 세 개의 보안 구역으로 분리하며,
    상기 보안 구역을 세 개의 보안 구역으로 분리하는 것은,
    상기 영역 컴포넌트에서 제1의 새로운 보안 구역을 생성하고, 상기 제1의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제2의 새로운 보안 구역을 생성하고, 상기 제2의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 컨테이너 자식 객체와 연관시키는 단계; 및
    상기 영역 컴포넌트에서 제3의 새로운 보안 구역을 생성하고, 상기 제3의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 논-컨테이너(non-container) 자식 객체와 연관시키는 단계
    를 수행하는 것을 포함하여 이루어지는, 시스템.
  6. 제4항에 있어서,
    상기 특정 객체는 컨테이너 객체(a container object)이고, 상기 영역 컴포넌트는 상기 보안 구역을 다섯 개의 보안 구역으로 분리하며,
    상기 보안 구역을 다섯 개의 보안 구역으로 분리하는 것은,
    상기 영역 컴포넌트에서 제1의 새로운 보안 구역을 생성하고, 상기 제1의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제2의 새로운 보안 구역을 생성하고, 상기 제2의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 컨테이너 자식 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제3의 새로운 보안 구역을 생성하고, 상기 제3의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 논-컨테이너(non-container) 자식 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제4의 새로운 보안 구역을 생성하고, 상기 제4의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 비직계(non-direct) 논-컨테이너(non-container) 자식 객체와 연관시키는 단계; 및
    상기 영역 컴포넌트에서 제5의 새로운 보안 구역을 생성하고, 상기 제5의 새로운 보안 구역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 비직계 컨테이너 자식 객체와 연관시키는 단계
    를 수행하는 것을 포함하여 이루어지는, 시스템.
  7. 제4항에 있어서,
    상기 특정 객체와 연관된 상기 특정 보안 설명자의 변경에 대한 요청은 상기 특정 객체와 연관된 상기 특정 보안 설명자에 의해 정의된 ACE(Access Control Entry)의 변경에 대한 요청을 포함하는, 시스템.
  8. 제7항에 있어서,
    상기 ACE는 명시적(explicit) 또는 암시적(implicit) 보안 변경을 나타내는, 시스템.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 제4항에 있어서,
    상기 특정 객체와 연관된 상기 특정 보안 설명자에 대한 변경이 보안 구역으로 하여금 다른 보안 구역과 동일한 보안 설명자를 가지도록 하는 경우에, 상기 보안 구역이 다른 보안 구역과 통합되는, 시스템.
  14. 제13항에 있어서,
    객체 보안과 상호작용하기 위한 인터페이스는 보안 취득 함수(get security function), 설명자 취득 함수(get descriptor function), 보안 설정 함수(set security function), 유지 링크 추가 함수(add holding link function), 유지 링크 제거 함수(remove holding link function), 및 유효 보안 취득 함수(get effective security function)를 포함하는, 시스템.
  15. 제1항에 있어서,
    상기 매핑 컴포넌트는 각 보안 구역을 데이터베이스 테이블에서의 보안 계층구조 행(a security hierarchy row)으로서 조직하는, 시스템.
  16. 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행될 때 상기 컴퓨터 시스템으로 하여금 데이터베이스에서 객체에 대한 보안 영역을 정의하는 방법을 수행하는 컴퓨터 실행가능한 명령어를 갖는 컴퓨터 저장 장치로서,
    상기 방법은,
    상기 컴퓨터 시스템에 의하여, 데이터베이스에서 복수의 객체를 정의하는 단계 - 상기 복수의 객체는 상기 복수의 객체 간의 하나 이상의 제1 계승 관계(inheritance relationships)를 기초로 상기 복수의 객체 간의 제1 계층형 관계(hierarchical relationship)를 가짐 - ;
    상기 컴퓨터 시스템에 의하여, 상기 객체에 대한 액세스의 정의를 위하여 복수의 보안 영역을 정의하는 단계 - 각각의 보안 영역은 상기 보안 영역에 대한 보안 속성을 기술하는 대응 보안 설명자(security descriptor) 및 상기 대응 보안 설명자를 식별하는 대응 보안 설명자 식별자(security descriptor identifier)에 연관되고, 상기 복수의 보안 영역은 상기 보안 영역 간의 하나 이상의 제2 계승 관계에 기초하여 상기 보안 영역 간에 제2 계층형 관계를 형성하고, 상기 보안 영역의 제2 계층형 관계는 상기 복수의 객체 간의 제1 계층형 관계와는 독립되며 상이함 - ; 및
    상기 컴퓨터 시스템에 의하여, 복수의 객체를 이루는 각 객체를 복수의 보안 영역 중 하나의 보안 영역의 대응 보안 설명자 식별자와 연관시키는 매핑 테이블을 제공하여, 상기 복수의 객체 중 특정 대응 보안 설명자를 공유하는 하나 이상의 객체가 상기 특정 대응 보안 설명자를 갖는 특정 보안 영역의 일부가 되도록 하고, 상기 객체를 이루는 각 객체에 대한 액세스는, 상기 복수의 객체 간의 상기 제1 계층적 관계가 아니라 상기 객체와 연관된 상기 보안 영역에서 정의된 상기 대응 보안 설명자에 의해 결정되도록 하는 단계
    를 포함하는, 컴퓨터 저장 장치.
  17. 데이터베이스에서 객체에 대한 보안 영역을 정의하기 위한 컴퓨터 실행가능한 방법으로서,
    상기 방법은,
    하나 이상의 프로세서를 포함하는 컴퓨터 시스템에 의하여, 데이터베이스에서 복수의 데이터베이스 객체를 정의하는 단계 - 상기 복수의 데이터베이스 객체는 상기 복수의 데이터베이스 객체 간의 하나 이상의 제1 계승 관계(inheritance relationships)를 기초로 상기 복수의 데이터베이스 객체 간의 제1 계층형 관계(hierarchical relationship)를 가짐 - ;
    상기 컴퓨터 시스템에 의하여, 상기 데이터베이스 객체에 대한 액세스의 정의를 위하여 복수의 보안 영역을 정의하는 단계 - 각각의 보안 영역은 상기 보안 영역에 대한 보안 속성을 기술하는 대응 보안 설명자(security descriptor) 및 상기 대응 보안 설명자를 식별하는 대응 보안 설명자 식별자(security descriptor identifier)에 연관되고, 상기 복수의 보안 영역은 상기 보안 영역 간의 하나 이상의 제2 계승 관계에 기초하여 상기 보안 영역 간에 제2 계층형 관계를 형성하고, 상기 보안 영역의 제2 계층형 관계는 상기 복수의 데이터베이스 객체 간의 제1 계층형 관계와는 독립되며 상이함 - ; 및
    상기 컴퓨터 시스템에 의하여, 상기 복수의 데이터베이스 객체를 이루는 각 객체를 복수의 보안 영역 중 하나의 보안 영역의 대응 보안 설명자 식별자와 연관시키는 매핑 테이블을 제공하여, 상기 복수의 데이터베이스 객체 중 특정 대응 보안 설명자를 공유하는 하나 이상의 객체는 상기 특정 대응 보안 설명자를 갖는 특정 보안 영역의 일부가 되도록 하고, 상기 데이터베이스 객체를 이루는 각 객체에 대한 액세스는, 상기 복수의 객체 간의 상기 제1 계층적 관계가 아니라 상기 데이터베이스 객체와 연관된 상기 보안 영역에서 정의된 상기 대응 보안 설명자에 의해 결정되도록 하는 단계
    를 포함하는, 컴퓨터 실행가능한 방법.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제17항에 있어서,
    특정 데이터베이스 객체의 보안 설명자의 변경에 대한 요청에 응답하여, 보안 영역을 분리하거나 통합하는 단계를 더 포함하는, 컴퓨터 실행가능한 방법.
  22. 제21항에 있어서,
    상기 특정 데이터베이스 객체는 컨테이너 객체(a container object)이고, 상기 보안 영역은 세 개의 보안 영역으로 분리되며,
    상기 보안 영역이 세 개의 보안 영역으로 분리되는 것은,
    상기 영역 컴포넌트에서 제1의 새로운 보안 영역을 생성하고, 상기 제1의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제2의 새로운 보안 영역을 생성하고, 상기 제2의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 컨테이너 자식 객체와 연관시키는 단계; 및
    상기 영역 컴포넌트에서 제3의 새로운 보안 영역을 생성하고, 상기 제3의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 논-컨테이너(non-container) 자식 객체와 연관시키는 단계
    를 수행하는 것을 포함하여 이루어지는, 컴퓨터 실행가능한 방법.
  23. 제21항에 있어서,
    상기 특정 데이터베이스 객체는 컨테이너 객체(a container object)이고, 상기 보안 영역은 다섯 개의 보안 영역으로 분리되며,
    상기 보안 영역이 세 개의 보안 영역으로 분리되는 것은,
    상기 영역 컴포넌트에서 제1의 새로운 보안 영역을 생성하고, 상기 제1의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제2의 새로운 보안 영역을 생성하고, 상기 제2의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 컨테이너 자식 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제3의 새로운 보안 영역을 생성하고, 상기 제3의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 논-컨테이너(non-container) 자식 객체와 연관시키는 단계;
    상기 영역 컴포넌트에서 제4의 새로운 보안 영역을 생성하고, 상기 제4의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 비직계(non-direct) 논-컨테이너(non-container) 자식 객체와 연관시키는 단계; 및
    상기 영역 컴포넌트에서 제5의 새로운 보안 영역을 생성하고, 상기 제5의 새로운 보안 영역을 상기 매핑 컴포넌트에서 상기 컨테이너 객체의 임의의 비직계 컨테이너 자식 객체와 연관시키는 단계
    를 수행하는 것을 포함하여 이루어지는, 컴퓨터 실행가능한 방법.
  24. 제21항에 있어서,
    상기 특정 데이터베이스 객체의 보안 설명자의 변경에 대한 요청은 상기 특정 데이터베이스 객체와 연관된 상기 보안 설명자에 의해 정의된 ACE(Access Control Entry)의 변경에 대한 요청을 포함하는, 컴퓨터 실행가능한 방법.
  25. 제24항에 있어서,
    상기 ACE는 명시적(explicit) 또는 암시적(implicit) 보안 변경을 나타내는, 컴퓨터 실행가능한 방법.
  26. 제21항에 있어서,
    상기 특정 데이터베이스 객체의 보안 설명자에 대한 변경이 보안 영역으로 하여금 다른 보안 영역과 동일한 보안 설명자를 가지도록 하는 경우에, 상기 보안 영역이 다른 보안 영역과 통합되는, 컴퓨터 실행가능한 방법.
KR1020077021934A 2005-05-04 2006-03-09 영역 기반 보안 KR101292430B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/122,299 2005-05-04
US11/122,299 US8326877B2 (en) 2005-05-04 2005-05-04 Region-based security
PCT/US2006/008416 WO2006118662A2 (en) 2005-05-04 2006-03-09 Region-based security

Publications (2)

Publication Number Publication Date
KR20080013856A KR20080013856A (ko) 2008-02-13
KR101292430B1 true KR101292430B1 (ko) 2013-07-31

Family

ID=37308435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077021934A KR101292430B1 (ko) 2005-05-04 2006-03-09 영역 기반 보안

Country Status (18)

Country Link
US (1) US8326877B2 (ko)
EP (1) EP1875389B1 (ko)
JP (1) JP2008541226A (ko)
KR (1) KR101292430B1 (ko)
CN (1) CN101375275B (ko)
AU (1) AU2006241479B2 (ko)
BR (1) BRPI0609954A2 (ko)
CA (1) CA2602315A1 (ko)
ES (1) ES2600745T3 (ko)
IL (1) IL186068A (ko)
MX (1) MX2007012421A (ko)
NO (1) NO20074868L (ko)
NZ (1) NZ561945A (ko)
RU (1) RU2413978C2 (ko)
SG (1) SG161277A1 (ko)
TW (1) TWI399662B (ko)
WO (1) WO2006118662A2 (ko)
ZA (1) ZA200707971B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100080822A (ko) * 2007-09-28 2010-07-12 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9069599B2 (en) * 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
AU2009259876A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US20110035802A1 (en) * 2009-08-07 2011-02-10 Microsoft Corporation Representing virtual object priority based on relationships
EP2817944A1 (en) * 2012-02-24 2014-12-31 Interdigital Patent Holdings, Inc. Methods, apparatus and systems for mobile cloud bursting
CN103377261A (zh) * 2012-04-28 2013-10-30 瑞昱半导体股份有限公司 管理存取控制清单的装置、执行装置以及方法
RU2495487C1 (ru) * 2012-08-10 2013-10-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для определения доверия при обновлении разрешенного программного обеспечения
US20150180872A1 (en) * 2013-12-20 2015-06-25 Cube, Co. System and method for hierarchical resource permissions and role management in a multitenant environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694590A (en) * 1991-09-27 1997-12-02 The Mitre Corporation Apparatus and method for the detection of security violations in multilevel secure databases

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07104868B2 (ja) * 1988-04-08 1995-11-13 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ記憶検索システム
US5261102A (en) * 1991-03-28 1993-11-09 International Business Machines Corporation System for determining direct and indirect user access privileges to data base objects
US5504814A (en) * 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US6134558A (en) * 1997-10-31 2000-10-17 Oracle Corporation References that indicate where global database objects reside
US6202066B1 (en) 1997-11-19 2001-03-13 The United States Of America As Represented By The Secretary Of Commerce Implementation of role/group permission association using object access type
US6125447A (en) * 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system
US6446206B1 (en) 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
US6105066A (en) 1998-05-05 2000-08-15 International Business Machines Corp. Client-server system with central application management and using fully qualified class names of object-oriented applications for determining permanent server storage locations for application configuration information
US6381605B1 (en) 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
AU2001242790A1 (en) * 2000-03-27 2001-10-08 Sanyo Electric Co., Ltd. Data distribution server, terminal, and data distribution system
US6732100B1 (en) * 2000-03-31 2004-05-04 Siebel Systems, Inc. Database access method and system for user role defined access
US6795450B1 (en) 2000-09-28 2004-09-21 Tdk Semiconductor Corporation Method and apparatus for supporting physical layer link-suspend operation between network nodes
US20020107889A1 (en) * 2001-02-08 2002-08-08 Tilion Corporation Markup language routing and administration
US7051039B1 (en) * 2001-09-28 2006-05-23 Oracle International Corporation Mechanism for uniform access control in a database system
US7240046B2 (en) 2002-09-04 2007-07-03 International Business Machines Corporation Row-level security in a relational database management system
US7266702B2 (en) * 2002-10-21 2007-09-04 Solid Information Technology Oy Method and system for managing security material and services in a distributed database system
US7127461B1 (en) * 2002-11-27 2006-10-24 Microsoft Corporation Controlling access to objects with rules for a work management environment
US7529811B2 (en) * 2003-08-21 2009-05-05 Microsoft Corporation Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system
US7251822B2 (en) 2003-10-23 2007-07-31 Microsoft Corporation System and methods providing enhanced security model
US7661141B2 (en) * 2004-02-11 2010-02-09 Microsoft Corporation Systems and methods that optimize row level database security
US7200595B2 (en) * 2004-03-29 2007-04-03 Microsoft Corporation Systems and methods for fine grained access control of data stored in relational databases
US7490347B1 (en) * 2004-04-30 2009-02-10 Sap Ag Hierarchical security domain model
US8990254B2 (en) * 2004-07-02 2015-03-24 Ellie Mae, Inc. Loan origination software system for processing mortgage loans over a distributed network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694590A (en) * 1991-09-27 1997-12-02 The Mitre Corporation Apparatus and method for the detection of security violations in multilevel secure databases

Also Published As

Publication number Publication date
RU2007140924A (ru) 2009-05-10
US20060253443A1 (en) 2006-11-09
TW200639673A (en) 2006-11-16
EP1875389A4 (en) 2009-07-01
RU2413978C2 (ru) 2011-03-10
EP1875389B1 (en) 2016-08-03
BRPI0609954A2 (pt) 2010-05-11
KR20080013856A (ko) 2008-02-13
CN101375275B (zh) 2013-02-13
CN101375275A (zh) 2009-02-25
AU2006241479A1 (en) 2006-11-09
ES2600745T3 (es) 2017-02-10
TWI399662B (zh) 2013-06-21
US8326877B2 (en) 2012-12-04
WO2006118662A2 (en) 2006-11-09
IL186068A0 (en) 2008-01-20
JP2008541226A (ja) 2008-11-20
NO20074868L (no) 2008-01-23
SG161277A1 (en) 2010-05-27
AU2006241479B2 (en) 2012-05-03
MX2007012421A (es) 2007-10-19
ZA200707971B (en) 2008-12-31
CA2602315A1 (en) 2006-11-09
IL186068A (en) 2013-03-24
WO2006118662A3 (en) 2007-11-22
EP1875389A2 (en) 2008-01-09
NZ561945A (en) 2010-09-30

Similar Documents

Publication Publication Date Title
KR101292430B1 (ko) 영역 기반 보안
US7376668B2 (en) Dynamic filtering in a database system
US7096216B2 (en) Performing operations on a set of objects in a database system
US7010542B2 (en) Result set formatting and processing
US7478087B2 (en) Translation of object queries involving inheritence
US7082433B2 (en) Translation of object queries involving inheritence
US6470353B1 (en) Object-oriented framework for managing access control in a multimedia database
US20070094301A1 (en) Application programming interface for centralized storage of principal data
US7426521B2 (en) Property and object validation in a database system
EP4155964A1 (en) Centralized metadata repository with relevancy identifiers
EP4155965A1 (en) System and method for facilitating metadata identification and import
US20080294673A1 (en) Data transfer and storage based on meta-data
US20050216501A1 (en) System and method of providing and utilizing an object schema to facilitate mapping between disparate domains
CN114861229A (zh) 一种Hive动态脱敏方法及系统
US11940951B2 (en) Identification and import of metadata for extensions to database artefacts
Kuno View materialization issues in object-oriented databases
Nica et al. Using Complex Substitution Strategies for View Synchronization
Nica et al. CVS: The Complex Substitution Algorithm for View Synchronization
Nichols A Comparison of Object-Relational and Relational Databases
Cellary et al. Stamp locking method for multiversion composite objects

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 6