KR20060071861A - Crm 데이터베이스에서의 보안 열람 - Google Patents

Crm 데이터베이스에서의 보안 열람 Download PDF

Info

Publication number
KR20060071861A
KR20060071861A KR1020050104436A KR20050104436A KR20060071861A KR 20060071861 A KR20060071861 A KR 20060071861A KR 1020050104436 A KR1020050104436 A KR 1020050104436A KR 20050104436 A KR20050104436 A KR 20050104436A KR 20060071861 A KR20060071861 A KR 20060071861A
Authority
KR
South Korea
Prior art keywords
user
row
database
view
business
Prior art date
Application number
KR1020050104436A
Other languages
English (en)
Other versions
KR101224822B1 (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 KR20060071861A publication Critical patent/KR20060071861A/ko
Application granted granted Critical
Publication of KR101224822B1 publication Critical patent/KR101224822B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

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)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 다른 방법으로는 액세스 불가능한 DBMS의 애플리케이션 데이터베이스 내의 정보를 보안 프로토콜을 구현하는 뷰 정의를 이용하여 액세스하는 방법 및 시스템에 관한 것이다.
DBMS, CRM, SQL, ERP, RLS

Description

CRM 데이터베이스에서의 보안 열람{SECURED VIEWS FOR A CRM DATABASE}
도 1은 본 발명에 따라 동작할 수 있는 컴퓨팅 시스템을 예시한 블록도.
도 2는 마이크로소프트 CRM 및 마이크로소프트 SQL 서버를 이용한 기존의 CRM-DBMS의 일반적인 구성을 예시한 도면.
도 3은 본 발명에 따른 시스템의 실시예를 예시한 도면.
도 4는 본 발명에 따른 방법 및 시스템을 구현하기 위한 DBMS용의 가능한 보안 파라미터의 집합을 예시한 도면.
도 5는 본 발명의 실시예에 따른 뷰 정의(view definition)의 흐름을 예시한 흐름도.
도 6은 보안 열람을 이용하여 구현한 보안 체크 절차를 예시한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
200: 마이크로소프트 CRM
210, 320: 마이크로소프트 SQL 서버(DBMS)
230: ExecuteQuery
250, 310: 마이크로소프트 CRM 데이터베이스
260: 애플리케이션 데이터베이스
340: 뷰
350: 테이블
본 발명은 데이터베이스 관리 시스템에서 데이터베이스 테이블에의 보안 액세스를 제공하는 방법에 관한 것이다.
데이터베이스 관리 시스템(DBMS)에서 데이터는 하나 이상의 데이터 저장소에 저장된다. 각 저장소에는 레코드가 보관되며 각 레코드 내의 데이터는 하나 이상의 필드로 정리되어 있다. 관계형 데이터베이스 시스템에서, 데이터 저장소들은 테이블로서 참조되며 레코드들은 행(row)으로서 참조되며 필드들은 열(column)로서 참조된다. 오브젝트 지향 데이터베이스에서, 데이터 저장소들은 오브젝트 클래스로서 참조되며 레코드들은 오브젝트로서 참조되며 필드들은 속성으로서 참조된다. 다른 데이터베이스 아키텍처에서는 다른 용어를 사용할 수도 있다. 본 발명은 특정 타입의 데이터 저장소 또는 데이터베이스 아키텍처에 국한되지 않는다.
방대한 데이터 취급 요건을 갖는 다수의 애플리케이션들은 애플리케이션 데이터의 관리를 돕기 위하여 독립형 DBMS에 의존하고 있다. 이러한 애플리케이션들은 "CRM"(customer relationship management) 시스템 및 "ERP"(enterprise resource planning) 시스템을 포함하는 비즈니스 애플리케이션들을 갖는다. 별도의 독립형 DBMS를 이용하면 애플리케이션 설계자들이 복잡한 대량의 데이터 저장 기능을 DBMS에 의존하여 처리할 수 있도록 하는 한편 설계자들이 여유를 가지고 애 플리케이션 전용 기능을 생성하는 작업에 집중할 수 있도록 한다. 작업을 분산하는 이득 외에도, 이러한 듀얼(dual: 이중) 시스템 모듈은 보안 기능이 애플리케이션 시스템에 로컬라이즈(localize)되어 있는 일반적으로 사용되는 간단한 보안 프레임워크를 제공한다. 예를 들어, DBMS를 이용하는 CRM 시스템을 포함하는 전용(proprietary) 비즈니스 애플리케이션들은 CRM 시스템을 통해서만 CRM 데이터에의 액세스를 제공함으로써 데이터에 대한 액세스 및 보안이 CRM 애플리케이션에서 제공된 보안 기능을 통해 관리되는 것을 보장한다. 이러한 모델에서 CRM 시스템은 관리보수의 목적으로 시스템 관리자 또는 CRM 애플리케이션에 의해서만 액세스 가능한 폐쇄된(closed) 개인용 데이터베이스 인스턴스를 구현하는 것이 일반적이다.
도 2는 종래의 시스템에서 이용되는 보안 모델을 나타낸 것이다. 이 보안 모델에서 DBMS는 애플리케이션 데이터베이스에의 일반 액세스를 제한하되 오직 소프트웨어 시스템 자신 또는 시스템 관리자만 데이터베이스에의 액세스를 허용하도록 설정되어 있다. 이와 같이, 애플리케이션 시스템 데이터에 대한 모든 액세스가 애플리케이션에 의해 제어된다.
보안이 DBMS로부터 떨어져 있는 채널을 통하며 비즈니스 애플리케이션 내에 로컬라이즈되어 있는 이유는 전형적인 DBMS의 보안 기능이 애플리케이션 전용 보안 요건을 다루기에 적합하지 않은 경우가 많기 때문이다. 예를 들어, DBMS의 하나인 마이크로소프트 SQL(structured query language) 서버는 단지 테이블 레벨에서의 데이터 보호를 제공한다. 마이크로소프트 CRM과 같은 다수의 비즈니스 애플리케이션은 특정 행레벨(row-level)에서의 보호를 필요로 한다. 행레벨 보안(RLS: row- level security)에서는 결과들이 사용자의 역할(role) 및 권한(privilege)에 기초하여 은닉 또는 보류 데이터 행과 함께 리턴된다. 마이크로소프트 CRM과 같은 CRM 시스템에서는 보통 이러한 행레벨 보안을 API(application programming interfaces)를 통해 프로그램적으로 또는 일반 소프트웨어 실행문을 이용하여 애플리케이션 소프트웨어에 의해 수행한다.
다수의 독립 소프트웨어 벤더들이 DBMS 레벨 보안을 이용하려고 하지 않는 또 다른 이유는 그렇게 하려면 특정 DBMS를 위한 벤더 특정 설계 고려사항 및 지원이 필요하기 때문이다. 이것은 소프트웨어의 상호-호환성의 구현을 더욱 어렵게 한다. 데이터베이스 보안이 애플리케이션 소프트웨어 자체를 통한 채널을 이용하도록 되어 있는 시스템에서는 애플리케이션에서 사용되고 있는 특정 DBMS에 대한 고려사항은 훨씬 덜할 것이다.
이러한 일반적 보안 시스템에서는 CRM 시스템 설계자가 로컬라이즈된 보안을 구현하기가 편리하도록 하고 있지만, 애플리케이션 자체가 수행하기에 적합하지 않거나 또는 그렇게 설계되지 않은 애플리케이션 데이터베이스에 저장된 데이터에 대한 분석을 수행하려는 요구 또는 필요가 있는 경우가 있을 수 있다. 마이크로소프트 CRM과 같은 CRM 시스템의 예에서, CRM 시스템이 수행하도록 설계되지 않은 고객 데이터에 대한 분석, 즉 트렌드, 마케팅 패턴, 수요 통계, 예산 고려사항, 운영 고려사항 등에 대한 분석을 수행하려는 요구가 있을 수 있다. 또한, 마이크로소프트 CRM 데이터를 ERP(enterprise resource planning) 애플리케이션과 같은 다른 관련 비즈니스 애플리케이션과 공유하기 위한 편리한 방법은 존재하지 않는다.
기존의 보안 모델 하에서 CRM 데이터에 대한 액세스를 제공하기 위한 한가지 옵션은 CRM 시스템을 통해 필요한 데이터를 추출하기 위한 CRM 시스템에의 인터페이스를 설계하는 것이다. 이것은 사용자에게 API를 제공하여 CRM 시스템을 통해 데이터를 검색하도록 하면 된다. 그러나, 사용자가 애플리케이션 인터페이스를 통해 통신하기 위한 코드를 프로그래밍하는데 능숙해야 하므로, CRM 시스템에 따라서는 이러한 절차에 과도한 시간이 소요되고 복잡한 작업일 수 있다. 이러한 방법은 다수의 데이터 분석자들이 수행하기에 적합한 프로세스는 아니다.
마이크로소프트의 오피스 제품군, 예컨대 마이크로소프트 워드, 마이크로소프트 엑셀, 마이크로소프트 파워포인트 등을 포함한 다수의 애플리케이션은 SQL(structured query language) 및 ODBC(Open Database Connectivity)를 지원하는 임의의 DBMS에 액세스할 수 있다. 따라서, 마이크로소프트 CRM 데이터베이스에의 액세스를 제공하는 또 다른 편리한 옵션은 DBMS를 통해 사용자 그룹에게 액세스용 데이터베이스를 오픈하는 것이다. 그러나, 앞서 설명한 바와 같이, DBMS는 테이블 레벨까지의 보호는 허용하되 테이블 내의 행 특정 정보에 대한 마이크로 레벨의 보호는 허용하지 않는 것이 보통이다. 특정 비즈니스에서는 데이터 분석자가 모든 행 데이터를 보는 것을 원하지 않고 행 중 일부만 보는 것을 원할 수도 있다. 이러한 옵션을 구현하기 위해서는 종업원의 비즈니스 역할을 변경하고 새로운 비즈니스 역할을 생성하는 등의 추가의 비즈니스 프로세스의 변경을 실시할 필요가 있는데, 이러한 작업은 많은 독립 소프트웨어 벤더(즉, "ISV": independent software vendors)들이 고객에게 부담을 주지 않으려고 하는 작업들 중 하나일 것이다. 또한, ODBC(Open Database Connectivity)를 허용하면 비즈니스를 크게 해할 수 있는 애플리케이션 데이터의 파괴(corruption) 위험을 증대시킬 수 있다. 시스템 관리자에게 데이터베이스를 개방하는 것은 합리적일 수 있지만 데이터 분석자 그룹에게 전면적으로 액세스되는 데이터베이스를 개방한다면 CRM 데이터베이스와 같은 데이터베이스를 타협(compromise)에 대해 민감하게 만들 수 있는 보안에서의 문제를 야기할 수 있다.
따라서, 보안화된 애플리케이션의 보안 계획에 타협하지 않고 DBMS를 통해 보안화된 애플리케이션 데이터베이스 내의 데이터를 액세스하는 개선된 방법 및 시스템이 요구된다.
본 발명은 다른 방법으로는 액세스 불가능한 DBMS의 애플리케이션 데이터베이스 내의 정보를 보안 프로토콜을 구현하는 뷰 정의를 이용하여 액세스하는 방법 및 시스템에 관한 것이다. 본 명세서에서는 CRM 시스템 구현예, 즉 구체적으로 마이크로소프트 CRM에 적용한 경우의 방법 및 시스템을 설명하겠지만, 본 시스템은 다른 보안화된 애플리케이션 데이터베이스에도 마찬가지로 적용될 수 있다.
본 발명의 방법 및 시스템은 DBMS에서 CRM 데이터베이스에 대한 이산적인(discrete) 액세스를 허용하도록 설정된 계층적 보안 액세스 모델에 관한 것이다. 사용자들은 예를 들어 통합 DBMS 운영체제 인증 프로토콜을 이용하여 DBMS에 로그온하며 애플리케이션 데이터베이스의 인스턴스에 대한 액세스를 취득한다. 그러 나, 데이터베이스 내에 저장된 오브젝트에 대한 추가 액세스는 데이터베이스 열람에 국한된다. 또한, 이러한 모델에서는 뷰 식별자 목록의 취득을 위한 열람, 뷰 속성 목록의 취득을 위한 열람, 및 해당 뷰의 실행을 위한 열람에의 액세스만 허용한다.
뷰는 그것이 대응하는 데이터베이스의 특정 테이블에 대한 보안화된 프록시(proxy)로서 작용한다. 또한, 상기 뷰에 사용자 역할 및 사용자 권한을 테이블-행 연관 및 권한에 매칭시키는 간단한 쿼리 조건을 덧붙이는 것에 의해 비교적 쉬운 방법으로 보안을 부여할 수 있다. 또한, DBMS를 통해 액세스가 수행되고 있으므로, CRM 데이터를 처리하는데 사용되는 2차적인 애플리케이션과의 상호동작을 제공하기 위하여 추가의 인터페이스 방법을 코딩할 필요가 없다. 이와 같이, 코드에 정통한 데이터 분석자들을 필요로 하지 않고 효과적인 데이터베이스 추출 및 쿼리 필터링이 수행된다.
아래에서는 각종 실시예에 대한 상세한 설명을 개시하고 있지만, 그 법적 범주는 본 명세서에 첨부된 특허청구범위에 기재된 것에 의해 규정되어야 한다. 상세한 설명은 예시를 위한 것일 뿐이며, 가능한 모든 실시예를 기재한다는 것은 불가능하지는 않지만 실용적이지 않으므로 가능한 모든 실시예를 설명하지는 않는다. 현시점에서의 기술 또는 본 특허의 출원일 이후에 개발된 기술을 이용하여 각종의 다른 실시예를 구현하는 것이 가능할 것이므로, 이것들도 본 발명의 범주에 포함되는 것이다.
본 특허 명세서에서 "본 명세서에서 용어 '______'는 ...를 의미하는 것으로 정의한다" 또는 이와 유사한 문장을 사용하여 명시적으로 해당 용어를 정의하고 있지 않다면, 해당 용어의 의미를 그 순수한 또는 통상의 의미를 벗어나 명시적 또는 암시적으로 제한하려는 의도는 없으며, 이러한 용어를 (특허청구범위의 기재가 아닌) 본 특허 명세서의 임의의 부분에서 사용된 기재에 기초하여 그 범위를 제한하는 것으로 해석해서는 안된다. 본 특허 명세서에 첨부된 특허청구범위에 기재된 용어는 본 특허 명세서에서 하나의 의미로써 일관되게 언급되고 있다는 점에서, 그것은 독자들의 혼란을 방지하도록 명확화를 위한 것이지, 이러한 특허청구범위의 용어가 암시적 또는 그 밖의 방식으로 그 한가지 의미에 국한되는 것을 의도하지는 않는다. 마지막으로, 특허청구범위의 엘리먼트가 "수단(means)"을 인용하여 규정되고 있지 않고 기능(function)이 어떠한 구조를 인용하지 않고 있다면, 특허청구범위의 엘리먼트의 범주가 35 USC 112조 6항의 규정에 기초하여 해석되어서는 안된다.
<실시예>
도 1은 본 발명의 방법 및 시스템이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 일례를 예시한 것이다. 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 환경의 일례를 나타낸 것일 뿐이며, 본 발명의 방법 및 시스템의 용도 또는 기능의 범주를 제한하려는 의도는 아니다. 또한, 이 컴퓨팅 환경(100)은 컴퓨팅 환경(100)에 예시된 구성요소 중 하나 또는 이들의 조합에 관하여 어떠한 의존성 또는 필수요건인 것으로 해석되어서는 안된다.
본 발명의 방법 및 장치의 각 블록은 다수의 다른 범용 또는 전용 컴퓨팅 시 스템 환경 또는 구성에서도 동작한다. 본 발명의 방법 또는 장치에 사용될 수 있는 적절한 공지의 컴퓨팅 시스템, 환경 및/또는 구성의 예로는, 이것에 국한되지는 않지만, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋탑박스, 프로그래머블 가전, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 및 상기한 시스템 또는 디바이스 중 임의의 것을 포함하는 분산형 컴퓨팅 환경 등을 들 수 있다.
본 발명의 방법 및 장치의 각 블록은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행이능 명령문의 형태로 기재될 수도 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 방법 및 장치는 통신 네트워크를 통해 링크되는 원격 처리 장치에 의해 태스크들이 수행되는 분산형 컴퓨팅 환경에서 실시될 수도 있다. 분산형 컴퓨팅 환경에서 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체에 위치할 수 있다.
도 1를 참조하면, 본 발명의 방법 및 장치의 각 블록을 구현하기 위한 예시적 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 각 컴포넌트로는, 이것에 국한되지는 않지만, 처리부(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 각종 시스템 컴포넌트들을 처리부(120)에 결합하는 시스템 버스(121)를 포함한다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 포함하는 각종 버스 구조 중 임의의 종류의 버스 구조일 수 있다. 일례로, 이것에 국 한되지는 않지만, 이러한 아키텍처에는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 PCI(Peripheral Component Interconnect) 버스(Mezzanine 버스라고도 함)를 들 수 있다.
컴퓨터(110)는 전형적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스 가능한 임의의 매체일 수 있는데 활성 및 불활성 매체, 착탈식 및 비착탈식 매체의 양방을 포함한다. 일례로서, 이것에 국한되지는 않지만, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈 또는 그 밖의 데이터 등의 정보 저장을 위한 임의의 방법 또는 기술에 의해 구현되는 활성 및 불활성, 착탈식 및 비착탈식 매체의 양방을 포함한다. 컴퓨터 저장 매체에는, 이것에 국한되지는 않지만, RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 그 밖의 광디스크 저장장치, 자기 카셋트, 자기 테이프, 자기 디스크 저장장치 또는 그 밖의 자기 저장 디바이스, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터(110)에 의해 액세스 가능한 그 밖의 임의의 매체가 포함될 수 있다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 그 밖의 트랜스포트 메커니즘과 같은 변조된 데이터 신호 내의 데이터를 담고 있으며, 임의의 정보 전달 매체를 포함한다. 여기서, 용어 "변조된 데이터 신호"는 하나 이상의 자신의 특성 집합을 가지거나 그 신호 내에 정보를 암호화하는 방식으로 변 화된 신호를 의미한다. 일례로서, 이것에 국한되지는 않지만, 통신 매체는 유선 네트워크 또는 직접배선 접속과 같은 유선 매체와 어쿠스틱, RF, 적외 또는 그 밖의 무선 매체와 같은 무선 매체를 포함한다. 상기한 것들의 임의의 조합도 컴퓨터 판독가능 매체의 범주에 포함된다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)과 같은 활성 및/또는 불활성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 기동 시와 같이 컴퓨터(110) 내의 각 엘리먼트들 사이에서 정보의 교환을 도와주는 기본 루틴을 구비하고 있는 BIOS(133)는 전형적으로 ROM(131)에 저장된다. RAM(132)은 전형적으로 처리부(120)에 의해 즉시 액세스 가능한 및/또는 현재 동작 중인 데이터 및/또는 프로그램 모듈들을 구비하고 있다. 일례로서, 이것에 국한되지는 않지만, 도 1에서는 운영체제(134), 애플리케이션 프로그램(135), 그 밖 프로그램 모듈(136) 및 프로그램 데이터(137)를 예시하고 있다.
컴퓨터(110)는 그 밖의 착탈식/비착탈식 활성/불활성 컴퓨터 저장 매체를 포함할 수도 있다. 일례로서, 도 1에서는 비착탈식 불활성 자기 매체, 착탈식 불활성 자기 디스크(152)에 판독 또는 기입하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 그 밖의 광학 매체와 같은 착탈식 불활성 광디스크(156)에 판독 또는 기입하는 광디스크 드라이브(155)를 예시하고 있다. 예시적 운영 환경에 이용될 수 있는 다른 착탈식/비착탈식 활성/불활성 컴퓨터 저장 매체에는, 이것에 국한되지는 않지만, 자기 테이프 카세트, 플래시 메모리 카드, DVD(digital versatile disks), 디지털 비디오 테이프, 고형(solid state) RAM, 고형 ROM 등이 포함된다. 하드 디스 크 드라이브(141)는 전형적으로 인터페이스(140)와 같은 비착탈식 메모리 인터페이스를 통해 시스템 버스(121)에 연결되며 자기 디스크 드라이브(151) 및 광디스크 드라이브(155)는 전형적으로 인터페이스(150)와 같은 착탈식 메모리 인터페이스에 의해 시스템 버스(121)에 연결된다.
이상 설명한 도 1에 예시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는 컴퓨터(110)용의 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈 및 그 밖의 데이터에 대한 스토리지를 제공한다. 예를 들어, 도 1에서 하드 디스크 드라이브(141)는 운영체제(144), 애플리케이션 프로그램(145), 그 밖 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하고 있는 것으로 예시되고 있다. 이들 구성요소들은 운영체제(134), 애플리케이션 프로그램(135), 그 밖의 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일할 수도 있고 다른 것일 수도 있다. 여기서는 최소한 이들이 다른 것임을 예시하기 위하여 운영체제(144), 애플리케이션 프로그램(145), 그 밖의 프로그램 모듈(146) 및 프로그램 데이터(147)의 수를 달리하였다. 사용자는 일반적으로 마우스, 트랙볼 또는 터치패드라고 하는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 커맨드 및 정보를 컴퓨터(110)에 입력한다. 다른 입력 장치(미도시)로는 마이크, 조이스틱, 게임패드, 위성수신기, 스캐너 등이 포함될 수 있다. 이들 및 그 밖의 입력 장치들은 시스템 버스에 결합된 사용자 인터페이스(160)를 통해 처리부(120)에 연결되는 것이 보통이지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 그 밖의 인터페이스 및 버스 구조에 의해 연결될 수도 있다. 시스템 버스(121)에는 비디오 인터페이스 (190)와 같은 인터페이스를 통해 모니터(191) 또는 다른 타입의 표시 장치가 연결된다. 컴퓨터는 모니터 외에도 출력 주변 인터페이스(195)를 통해 연결된 스피커(197) 및 프린터(196)와 같은 그 밖의 주변 출력 장치를 포함할 수도 있다.
본 발명에서 컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터에의 논리 접속을 이용하여 네트워크 환경에서 동작한다. 원격 컴퓨터(180)는 퍼스널 컴퓨터일 수 있으며 - 도 1에서는 메모리 저장 장치(181)만을 예시하고 있지만 - 전형적으로 컴퓨터(110)와 관련하여 앞서 설명한 모든 또는 다수의 엘리먼트를 포함한다. 도 1에 도시된 논리 접속에는 LAN(171) 및 WAN(173)을 포함하며 그 밖의 네트워크도 포함할 수 있다. 이러한 네트워크 환경은 사무실, 기업규모 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔히 찾아볼 수 있다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 연결되어 있다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 전형적으로 인터넷과 같은 WAN(173)을 통한 통신 확립을 위한 모뎀(172) 또는 그 밖의 수단을 포함한다. 모뎀(172)은 내장형 또는 외장형일 수도 있으며 사용자 인터페이스(160) 또는 그 밖의 적절한 메커니즘을 통해 시스템 버스(121)에 연결된다. 네트워크 환경에서 컴퓨터(110)와 관련하여 도시된 프로그램 모듈 또는 그 일 부분은 원격 메모리 저장 장치에 저장될 수 있다. 일례로서, 이것에 국한되지는 않지만, 도 1에서는 원격 애플리케이션 프로그램(185)이 메모리 장치(181)에 존재하는 것으로 예시하고 있다. 도시된 네트워크 접속은 예시를 위한 것일 뿐이며 컴퓨터들 사이에 통신 링크를 확립하기 위한 다른 수단이 사용될 수도 있다.
도 2는 마이크로소프트 CRM 시스템(200) 및 마이크로소프트 SQL 서버(210)를 이용한 기존의 CRM-DBMS 모델의 일반적인 구성을 예시한 것이다. 현재, 마이크로소프트 CRM에서는 블록(215)에 의해 도시된 바와 같이 마이크로소프트 CRM 시스템(200) 자체 또는 DBMS의 관리 권한이 있는 시스템 관리자(220)에 의한 액세스를 제외한, DBMS를 통한 CRM 데이터베이스에의 모든 액세스를 제한하고 있다. 그러나, 마이크로소프트 CRM에서는 그 자신의 사용자 인터페이스 외에 마이크로소프트 CRM 데이터베이스에의 액세스를 위한 추가 수단을 제공하고 있다. 이 액세스는 Fetch XML, XML 포맷의 쿼리 커맨드 코드를 사용하는 ExecuteQuery(230)라고 하는 마이크로소프트 CRM API(application programming interface)를 이용하여 이루어진다. 사용자(240)는 Fetch XML 커맨드를 기입하여 이들 커맨드를 ExecuteQuery(230)에 보낸다. 그러면, ExecuteQuery(230)는 Fetch XML 쿼리 커맨드를 해석하고 마이크로소프트 CRM 데이터베이스(250)에 액세스하여 결과를 리턴한다. 이 방법은 CRM-DBMS 구조의 보안을 우회(bypass)하는 것처럼 보이지만, 실제로 API는 결과를 제공하기에 앞서 쿼리 커맨드에 대한 마이크로소프트 CRM 기반 보안 필터링을 수행한다. 앞서 설명한 바와 같이, 전형적인 사용자들은 애플리케이션으로부터 데이터를 추출하기 위하여 애플리케이션 레벨 코드를 기입하는데에 충분한 장치를 갖추고 있지 않은 것이 보통이다. ExecuteQuery 인터페이스(230)에서도 Fetch XML의 기입 작업은 복잡하고 시간이 많이 소요된다.
도 2에서는 또한 수개의 세트의 데이터베이스 테이블(251, 261)을 포함하는 수개의 데이터베이스(250, 260)를 관리하는 마이크로소프트 SQL 서버(210)를 예시하고 있다. 특정 애플리케이션에 대한 한 세트의 테이블을 채우고 있는 것이 분리된 데이터베이스 인스턴스일 수도 있다. 마이크로소프트 CRM 시스템(200)의 예에서, DBMS(210)는 마이크로소프트 CRM 데이터베이스(250)로서 사용하도록 지정된 하나의 데이터베이스를 가지며, 이 데이터베이스에는 CRM 시스템에 관련된 각종 정보와 고객 정보와 같은 CRM 시스템에 관련된 대부분의 데이터가 저장되어 있다. DBMS는 수개의 데이터베이스를 관리하되 본 발명의 방법 및 시스템을 구현하는 하나의 애플리케이션 데이터베이스를 가질 수 있다. CRM 데이터베이스(250)에 있어서, 도 2에서는 일반 사용자(240)에 대해서는 CRM 데이터베이스(250)에의 액세스가 차단되고 CRM 데이터에 대한 모든 액세스는 CRM 시스템(200)을 통하여 ExecuteQuery(230)와 같은 API를 통해 프로그램적으로 또는 실행문을 통해 이루어져야 하는 것으로 예시되고 있다.
도 3은 본 발명의 비즈니스 프로세스에 대한 실시예를 예시한 것인데 마이크로소프트 엑셀(300)을 이용하여 CRM 데이터베이스(310)에 액세스하는 경우를 예시하고 있다. 마이크로소프트 엑셀은 애플리케이션 데이터를 분석하기 위한 일반적인 도구이다. 마이크로소프트 제품군은 SQL 및 ODBC를 이용하는 임의의 DBMS에의 접속 능력을 제공하므로, 마이크로소프트 엑셀은 마이크로소프트 SQL 서버(320)에 접속한 다음 마이크로소프트 CRM 데이터베이스(310)에 접속할 것이다. 실제로, SQL 및 ODBC를 이용하는 DBMS에의 접속 능력을 제공하는 다수의 제3자 시스템(330)에서도 마이크로소프트 SQL 서버(320)에 접속할 수 있다. 다음으로, 마이크로소프 트 엑셀은 특정 CRM 테이블(350)에 대응하는 이용가능한 뷰(340)에 대한 쿼리를 실행하여 정보를 요구한다. 또한, 이 요구는 사용자(360)의 역할 및 권한 정보에 기초하여 행 필터링된 결과를 제공할 수도 있다. 종래기술의 시스템에서는 여전히 완전히 공개된 데이터베이스를 요구하거나 또는 CRM 시스템 자체에의 사용자 지정 인터페이스(custom interface)를 요구할 것이다. 또한, 종래기술의 시스템에서는 본 발명의 시스템에 따른 특정 실시예에서의 고유한 행-필터링 능력을 제공하지 않는 반면, 행들이 특정 사용자 또는 행에 부여된 역할 및 권한에 기초하여 행이 필터링될 것이다.
도 3에서는 또한 CRM 데이터베이스(310)가 한 세트의 테이블(350)에 대응하는 한 세트의 뷰(340)를 갖는 것으로 예시하고 있다. 각 테이블(350)은 DBMS를 통해 데이터베이스에 로그온한 사용자들로부터 보안상태에 있다. 그러나, 각 테이블(350)은 (점선으로 표시한 것과 같이) 보안을 강화하기 위하여 실제로 일반 사용자(360)로부터 은닉 상태로 있을 수도 있다. 상기 뷰(340)는 데이터베이스 테이블(350)에의 액세스를 위한 프록시로서 작용한다. 여기서, 상기 뷰(340)는 보여질 수는 있지만, 해당 뷰의 구현을 사용자들이 발견하는 것을 방지하기 위하여 그 실제 정의(definition)는 보호되어 있다. 경우에 따라서는 뷰에의 액세스, 즉 이용가능한 뷰의 목록 제공, 뷰 실행 파라미터의 목록 제공, 선택된 뷰의 실행을 위한 실행 권한 부여 등을 제한하는 것이 바람직할 수도 있다.
도 4는 본 발명의 실시예를 구현하기 위한 DBMS의 파라미터 설정을 예시한 것이다. 이들 파라미터 설정은 사용자마다 지정될 수도 있고 특정 상황에 따라서 시스템 관리자에 의해 변경될 수도 있다. 예를 들어, 시스템 관리자가 비즈니스 개발자로 하여금 뷰의 정의를 수정하는 것을 허용하는 경우가 있을 수 있는데, 이 경우 비즈니스 개발자는 수정 권한을 부여받을 것이다. 또 다른 경우에는, 도 4에 열거된 설정 외에는 추가의 권한을 제공하는 것은 바람직하지 않을 수 있다. 예를 들어, 판매원에게 뷰 정의를 수정할 권한을 부여한다면 그 판매원에게 다른 판매원에 관한 (허가되지 않은) 데이터를 열람하는 것을 허용하는 것이 되므로 이러한 권한이 부여되지는 않을 것이다. 여기서, 이러한 설정은 대부분의 DBMS 사용자에게 적용되는 것이며 시스템 관리자는 전형적으로 데이터베이스에 대한 액세스뿐만 아니라 테이블 및 뷰를 포함한 데이터베이스 오브젝트에 대한 전면적인 액세스 권한을 갖는다.
도 5는 본 발명의 실시예에 따른 뷰 정의의 흐름도(500)를 예시한 것이다. 이 흐름도에서 보안 루틴(501)은 역할을 체크하고(502) 데이터에 대한 권한을 체크한다(503). 권한 체크(503)에서 실패하면, 공백 데이터 세트의 레코드가 리턴된다. 역할 체크(502)에서 실패하면 모든 레코드를 숨긴다(509). 또한, 보안 필터링에 추가하여, 상기 뷰는 데이터 분석자의 데이터 세트에 대한 작업(508)을 용이하게 하기 위하여, 픽리스트(picklist) 변환(505), 물리적 열 명칭의 논리적 데이터베이스 명칭으로의 매핑(504, 507), 및 날짜 시간 변환(506)을 구현한다. 날짜 시간 변환(506)은 소정의 형식으로 되어 있는 테이블 내의 날짜 또는 시간 속성을 발췌하여 애플리케이션에 기반한 형식과 같은 제2의 형식으로 변환하는데 이용된다. 픽리스트 변환(505)은 픽리스트 값에 대한 설명 문자열(descriptive string) 을 제공하는데 이용된다. 예를 들어, 배송 액션 리스트의 픽리스트 변환은 0, 1, 2, 3 등의 데이터베이스 픽리스트 값을 FedEx, UPS, USPostMail, 등으로 변환할 것이다. 또한, 물리적 열 명칭을 논리적 데이터베이스 명칭으로 매핑하면 데이터베이스 명명 스키마에서 사용된 열 지정 명칭에 대해 사용자에 친숙한 명칭을 부여할 수 있다.
CRM 시스템은 비즈니스 계층구조를 그 자신의 보안 구현에 통합시킬 수 있으며, 소유자 및 비즈니스 유닛에 대응하는 필드를 그들의 데이터 엔티티에 포함시키고 있다. 마이크로소프트 윈도우즈와 같은 운영체제에도 사용자의 역할을 그룹과 제휴(affiliate)시키고 각 역할이 한 세트의 권한을 갖고 있는 계층구조를 갖고 있다. 본 발명의 실시예에서는 보안화된 뷰가 기존의 CRM 애플리케이션과 운영체제 환경에 영향을 주는 계층적 소유권 구조에 기초하여 행들을 리턴하도록 설계된다. 도 6에서는 이러한 잠재적 보안 체킹 모델을 예시하고 있다. 액세스 체킹 절차(600)는 먼저 블록 601에 도시된 바와 같이 사용자가 오브젝트의 소유자인지를 판정한다. 소유자라면 블록 602에서 그 사용자에게 전면적인 액세스권을 부여한다. 사용자가 오브젝트의 소유자가 아니라면, 루틴 610에서 오브젝트의 소유권 제휴관계에 기초하여 오브젝트에의 액세스에 필요한 권한 깊이(depth)를 결정한다. 블록 611에서 사용자 및 오브젝트가 동일 비즈니스 유닛에 속한다면, 최소 필요 권한 깊이는 '(로컬)Local'이라고 결정한다(612). 블록 613에서 오브젝트가 속한 비즈니스 유닛이 사용자의 비즈니스 유닛과 동일하다면, 최소 필요 권한 깊이는 '딥(Deep)'이라고 결정한다(614). 블록 615에서 오브젝트가 사용자와 동일 조직에 속 한다면, 최소 필요 권한 깊이는 '글로벌(Global)'이라고 결정한다(616). 최소 필요 권한 깊이를 산출하였다면, 블록 620, 621, 622에서 사용자의 권한이 최소 필요 권한 깊이를 갖는지를 확인한다. 블록 620, 621, 622에서 사용자의 권한이 최소 필요 권한 깊이 이상인 것으로 판정되었다면, 블록 602에서 액세스가 승인된다. 최소 필요 권한 깊이 미만인 것으로 판정되었다면, 루틴 600은 다시 블록 630에서 사용자 또는 사용자가 속한 팀에게 해당 오브젝트가 명시적으로 공유되고 있는지를 판정한다. 공유되고 있다면, 블록 602에서 액세스가 승인되고 그렇지 않다면 블록 640에서 액세스가 거부된다.
도 6에 예시된 권한 깊이는 기본(basic), 로컬(local), 딥(deep) 또는 글로벌(global)로서 분류된다. 기본 권한 깊이를 갖는 사용자는 그 사용자가 소유하고 있거나 자신에게 공유되어 있거나 또는 자신이 속한 팀에게 공유되어 있는 임의의 오브젝트에 대한 권한을 갖는다. 로컬 권한 깊이를 갖는 사용자는 기본 권한 깊이의 권한 외에, 그 사용자가 속한 비즈니스 유닛에 속하는 임의의 오브젝트에 대한 권한도 갖는다. 딥 권한 깊이를 갖는 사용자는 로컬 권한 깊이의 권한 외에, 그 사용자가 속한 비즈니스 유닛의 하위-비즈니스에 속하는 임의의 오브젝트에 대한 권한도 갖는다. 여기서, 하위-비즈니스는 바로 아래의 하위-비즈니스만이 아니라 임의의 깊이를 포함하는 것으로 하위-비즈니스의 하위-비즈니스도 포함하는 것이다. 글로벌 권한 깊이를 갖는 사용자는 사용자의 조직에 속하는 임의의 오브젝트에 대한 권한을 갖는다(따라서 글로벌 권한 레벨은 다른 모든 권한 레벨의 상위집합(superset)이다).
도 6의 보안 프로세스를 구현하는데 사용될 수 있는 SQL 구문은 다음과 같다.
Figure 112005063138932-PAT00001
보안 설명자 필드를 사용하여 API 기반 보안 처리를 위한 대규모의 명령문을 제공하는 기존의 보안 모델과 달리, 본 발명에서는 각 데이터베이스 오브젝트의 이 산적인 소유권 속성만을 참조하는 보안 모델에 의존한다(여기서 속성들은 오브젝트의 일반적인 속성 구조에 이미 한 부분을 차지하는 경우가 많다). 앞서 설명한 바와 같이, 보안 권한은 소유권 제휴관계에 기초하는 세트 단위로 처리된다. 따라서 처리 속도가 빨라진다. 또한, 본 발명의 방법 및 시스템에 따른 보안 모델에서는 API에 의존하지 않고 DBMS 내에서 각 행들을 처리하기 때문에, API가 통신 채널을 통해 한 세트의 행을 검색하여 대량의 보안 설명자를 해석하는 것보다는 전용 DBMS가 내부 명령문을 처리하는 것이 대체로 더 빠를 것이므로 처리 속도가 빨라질 것이다.
또한, CRM-DBMS 시스템의 사용자들은 이제 보안화된 뷰에 의해 제공되는 가상 테이블을 통해 데이터베이스 테이블과 인터페이스하게 된다. 또한, 사용자들은 운영체제에 통합된 보안 시스템을 이용하여 SQL-ODBC 드라이버와 호환되는 다수의 다른 분석툴을 가지고 데이터 분석을 수행하게 된다. 이렇게 되면 사용자는 기본이 되는 구현을 숙지할 필요없이 쿼리 마법사와 같은 툴을 사용하여 데이터베이스 테이블을 오픈하는 것과 마찬가지로 뷰를 오픈할 수 있게 되므로 마이크로소프트 오피스와 같은 애플리케이션 제품군에 대한 심리스(seamless) 통합을 제공한다.
일례로서, 사용자는 보안화된 뷰를 이용하여 수많은 통계 연산을 데이터에 대해 수행하는 엑셀과 같은 스프레드시트 프로그램에 CRM 관련 데이터를 임포트할 수 있다. 이것은 간단한 팝업 쿼리 마법사 타입의 툴을 사용하기 때문에 컴퓨터 코딩 언어를 몰라도 수행할 수 있다. 또한, 보안이 DBMS에 로컬라이즈되어 있기 때문에 개개의 보안 절차를 진행하여 데이터베이스에 액세스할 필요없이 임포트를 수행할 수 있다. 마지막으로, 실제 데이터가 아니라 데이터의 뷰에 대한 조작에 의해 데이터베이스 내의 기본이 되는 데이터를 수정함으로써 임포트 및 분석을 수행할 수 있다.
이상 본 발명을 특정 실시예를 예로 들어 설명하였지만, 본 발명의 사상 및 범주를 일탈하지 않는 범위 내에서 각종의 변경 및 수정이 가해질 수 있음을 이해해야 한다. 본 명세서에 개시된 실시예들은 예시를 위한 것일 뿐이며 이것에 국한되지는 않는다. 본 기술분야의 전문가들이라면 본 발명의 범주를 일탈하지 않고도 다른 실시예를 생각해 낼 수 있을 것이다.
전술한 것으로부터 본 발명은 앞서 설명한 목적 및 과제를 달성하기에 적합하며 본 발명에 따른 시스템 및 방법에 의한 고유한 다른 장점들을 구비한다는 것을 알 수 있다. 또한 어떤 특징이나 하위 조합들은 유용성의 문제이며 다른 특징이나 하위 조합들을 참조하지 않고 채용될 수 있는 것들이다. 따라서 이러한 것들은 청구항의 범주에 속하는 것으로 이해되어야 한다.
전술한 바와 같이, 본 발명에 따르면 보안화된 애플리케이션의 보안 계획에 타협하지 않고 DBMS를 통해 보안화된 애플리케이션 데이터베이스 내의 데이터를 액세스하는 개선된 방법 및 시스템이 제공된다.

Claims (20)

  1. 데이터베이스에 대한 보안화된 뷰(secured view)를 생성하기 위한 컴퓨터 실행가능 명령문을 포함하는 컴퓨터 판독가능 매체로서,
    적어도 하나의 데이터베이스 테이블 및 적어도 하나의 데이터베이스 뷰를 구비한 데이터베이스를 생성하는 단계 - 상기 데이터베이스 테이블은 행(row) ID, 행 비즈니스 유닛(business unit), 및 행 소유자를 포함함 - ;
    사용자로 하여금 상기 데이터베이스 뷰에 대한 액세스 및 실행을 허용하되, 사용자가 상기 데이터베이스 테이블을 열람하여 직접 액세스하는 것은 제한하는 단계 - 상기 사용자는 관련 사용자 ID, 관련 사용자 비즈니스 유닛, 관련 사용자 비즈니스 그룹, 및 관련 권한 깊이(privilege depth)를 가짐 - ; 및
    상기 사용자 ID, 상기 사용자 비즈니스 유닛, 상기 사용자 비즈니스 그룹, 및 상기 권한 깊이를 포함하는 한 세트의 파라미터 중 적어도 하나의 파라미터, 및 상기 행 ID, 상기 행 비즈니스 유닛, 및 상기 행 소유자를 포함하는 한 세트의 파라미터 중 적어도 하나의 파라미터에 기초하여, 상기 데이터베이스 뷰에 대한 상기 데이터베이스 테이블의 한 세트의 행을 선택하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  2. 제1항에 있어서,
    상기 사용자 ID, 상기 사용자 비즈니스 유닛, 상기 사용자 비즈니스 그룹, 상기 권한 깊이, 상기 행 ID, 상기 행 비즈니스 유닛, 및 상기 행 소유자를 획득하기 위하여 데이터베이스 조회(lookup)를 수행하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  3. 제1항에 있어서,
    상기 행 ID, 상기 행 비즈니스 유닛, 및 상기 행 소유자를 포함하는 파라미터 세트 중 적어도 하나를 획득하기 위한 데이터베이스 조회를 수행하는 동안, 상기 사용자 ID, 상기 사용자 비즈니스 유닛, 상기 사용자 비즈니스 그룹, 및 상기 권한 깊이를 포함하는 파라미터 세트 중 적어도 하나를 획득하기 위하여 캐시(cache)를 서치하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  4. 제1항에 있어서,
    상기 사용자가 상기 행 소유자인지의 여부;
    상기 행 비즈니스 유닛이 상기 사용자 비즈니스 유닛인지의 여부, 및 상기 권한 깊이가 로컬(local)인지의 여부;
    상기 행 비즈니스 유닛이 상기 사용자 비즈니스 유닛에 관련된 한 세트의 비즈니스 유닛에 포함되는지의 여부, 및 상기 권한 깊이가 딥(deep)인지의 여부;
    상기 행 비즈니스 유닛이 상기 사용자 비즈니스 그룹에 관련된 한 세트의 비즈니스 유닛에 속하는지의 여부, 및 상기 권한 깊이가 글로벌(global)인지의 여부; 및
    상기 행 ID가 상기 사용자 ID와 관련되어 있는지의 여부
    중 적어도 하나에 기초하여 행을 선택하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  5. 제1항에 있어서,
    상기 데이터베이스 뷰에 대한 열람 및 액세스 권한을 사용자에게 부여하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  6. 제1항에 있어서,
    상기 데이터베이스 테이블에 대한 어떠한 열람 및 액세스 권한도 사용자에게 부여하지 않는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  7. 제1항에 있어서,
    SQL 리스트뷰(list view) 커맨드에 의해 상기 뷰가 열거될 수 있도록 하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  8. 제5항에 있어서,
    상기 권한은 상기 뷰의 목록의 열람을 사용자에게 허용하는 것을 포함하는 것인 컴퓨터 판독가능 매체.
  9. 제5항에 있어서,
    상기 권한은 상기 뷰의 실행을 사용자에게 허용하는 것을 포함하는 컴퓨터 판독가능 매체.
  10. 제5항에 있어서,
    상기 권한은 상기 뷰의 속성 세트에 대한 결정을 사용자에게 허용하는 것을 포함하는 컴퓨터 판독가능 매체.
  11. 제1항에 있어서,
    상기 선택된 행에 대한 픽리스트(picklist) 평가, 상기 선택된 행에 대한 날짜 시간 변환, 상기 뷰 파라미터에 대한 논리 명칭에서 물리 명칭으로의 변환, 및 상기 선택된 행에 대한 물리 명칭에서 논리 명칭으로의 변환 중 적어도 하나를 수행하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  12. 제1항에 있어서,
    상기 사용자가 필요한 권한 깊이를 갖고 있지 않다면 공백(empty) 세트를 리턴하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  13. 제1항에 있어서,
    상기 사용자가 알려진 사용자 ID를 갖고 있지 않다면 널(null) 세트를 리턴하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  14. 제1항에 있어서,
    데이터베이스 관리 시스템을 이용하여 상기 데이터베이스 테이블 및 상기 데이터베이스 뷰에 대한 액세스를 제어하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  15. 제1항에 있어서,
    데이터베이스 관리 시스템에의 접속을 통해 뷰 결과를 비-데이터베이스 애플리케이션에 전송하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  16. 제15항에 있어서,
    상기 비-데이터베이스 애플리케이션은 스프레드시트(spreadsheet) 프로그램인 컴퓨터 판독가능 매체.
  17. 컴퓨터 시스템으로서,
    사용자 인증 서비스를 제공하는 운영체제;
    상기 사용자 인증 서비스를 이용하여 자신에게 접속하는 사용자를 인증하며, 한 세트의 데이터베이스를 관리하기 위한 데이터베이스 관리 시스템;
    고객 관계 관리(CRM: customer relationship management) 시스템;
    상기 데이터베이스 관리 시스템을 통해 상기 CRM 시스템에 의해 액세스되며, 고객 데이터베이스 테이블을 구비하는 고객 데이터베이스;
    상기 고객 데이터베이스에 저장되며, 상기 고객 데이터베이스 테이블의 행을 노출(expose)시키기 위한 뷰 정의(view definition)
    를 포함하되,
    상기 데이터베이스 관리 시스템은 자기에게 로그온한 사용자로 하여금 상기 뷰 정의의 목록을 열람하고 상기 뷰를 실행하는 것을 가능하게 하되, 사용자가 상기 데이터베이스 테이블을 열람하여 직접 액세스하는 것은 제한하며,
    상기 뷰는 상기 사용자 ID, 상기 사용자 비즈니스 유닛, 상기 사용자 비즈니스 그룹, 및 상기 권한 깊이를 포함하는 한 세트의 파라미터 중 적어도 하나의 파라미터, 및 상기 행 ID, 상기 행 비즈니스 유닛, 및 상기 행 소유자를 포함하는 한 세트의 파라미터 중 적어도 하나의 파라미터에 기초하여, 상기 고객 데이터베이스 테이블의 행을 노출시키는 컴퓨터 시스템.
  18. 제17항에 있어서,
    상기 CRM 시스템은 복수의 데이터베이스 테이블 및 복수의 뷰 정의를 포함하되, 상기 고객 데이터베이스 테이블은 각각 대응하는 뷰 정의를 갖는 컴퓨터 시스템.
  19. 제17항에 있어서,
    상기 뷰 정의를 실행하는 사용자가 행 소유자인 경우;
    상기 행 비즈니스 유닛이 상기 사용자 비즈니스 유닛이며 상기 권한 깊이가 로컬(local)인 경우;
    상기 행 비즈니스 유닛이 상기 사용자 비즈니스 유닛에 관련된 한 세트의 비즈니스 유닛에 속하며 상기 권한 깊이가 딥(deep)인 경우;
    상기 행 비즈니스 유닛이 상기 사용자 비즈니스 그룹에 관련된 한 세트의 비즈니스 유닛에 속하며 상기 권한 깊이가 글로벌(global)인 경우; 및
    상기 행 ID가 상기 사용자 ID와 관련된 경우
    중 하나에 속하는 경우, 상기 뷰 정의는 상기 고객 데이터베이스 테이블의 행을 노출시키는 컴퓨터 시스템.
  20. 컴퓨터 장치로서,
    비디오 이미지를 생성할 수 있는 표시부;
    입력 장치;
    상기 표시부 및 상기 입력 장치에 동작적으로 연결되며, 프로세서 및 상기 프로세서에 동작적으로 연결된 메모리를 구비하는 처리 장치; 및
    네트워크 및 상기 처리 장치에 연결된 네트워크 인터페이스
    를 포함하되, 상기 처리 장치는,
    테이블 및 뷰를 포함하는 데이터베이스를 관리하되, 상기 처리 장치는 사용자로 하여금 상기 뷰에 대한 액세스 및 실행은 허용하되, 사용자가 상기 테이블에 대한 액세스 및 열람은 제한하도록 프로그램되며,
    상기 뷰는 상기 사용자 ID, 상기 사용자 비즈니스 유닛, 상기 사용자 비즈니스 그룹, 및 상기 권한 깊이를 포함하는 한 세트의 파라미터 중 적어도 하나의 파라미터, 및 상기 행 ID, 상기 행 비즈니스 유닛, 및 상기 행 소유자를 포함하는 한 세트의 파라미터 중 적어도 하나의 파라미터에 기초하여, 상기 테이블의 한 세트의 행을 노출시키도록 프로그램된 컴퓨터 장치.
KR1020050104436A 2004-12-22 2005-11-02 Crm 데이터베이스에서의 보안 뷰 KR101224822B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/020,446 2004-12-22
US11/020,446 US7562092B2 (en) 2004-12-22 2004-12-22 Secured views for a CRM database

Publications (2)

Publication Number Publication Date
KR20060071861A true KR20060071861A (ko) 2006-06-27
KR101224822B1 KR101224822B1 (ko) 2013-01-21

Family

ID=35998563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050104436A KR101224822B1 (ko) 2004-12-22 2005-11-02 Crm 데이터베이스에서의 보안 뷰

Country Status (7)

Country Link
US (1) US7562092B2 (ko)
EP (1) EP1675030A1 (ko)
JP (1) JP4906340B2 (ko)
KR (1) KR101224822B1 (ko)
CN (1) CN1794232B (ko)
AU (1) AU2005237168B2 (ko)
CA (1) CA2526286A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100910336B1 (ko) 2006-10-19 2009-07-31 신동혁 논리 프로세스 및 물리 프로세스 모델을 맵핑한 비즈니스 프로세스 모델을 관리하기 위한 시스템 및 방법

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019636B2 (en) * 2004-09-28 2011-09-13 International Business Machines Corporation Method, system and program product for planning and managing a call center study
US9160792B2 (en) * 2005-04-05 2015-10-13 International Business Machines Corporation On-demand global server load balancing system and method of use
US8676845B2 (en) * 2006-08-22 2014-03-18 International Business Machines Corporation Database entitlement
US9846846B2 (en) * 2006-11-14 2017-12-19 International Business Machines Corporation Method and system for analyzing contact studies
US8402017B2 (en) * 2006-12-08 2013-03-19 International Business Machines Corporation Method for altering database views dependent on rules
US8332922B2 (en) * 2007-08-31 2012-12-11 Microsoft Corporation Transferable restricted security tokens
US8655918B2 (en) * 2007-10-26 2014-02-18 International Business Machines Corporation System and method of transforming data for use in data analysis tools
US20090300019A1 (en) * 2008-05-30 2009-12-03 Schumberger Technology Corporation Hierarchical item level entitlement
US8099788B2 (en) * 2008-09-16 2012-01-17 Oracle International Corporation Declarative data security for a rapid application development tool component
US9753737B2 (en) 2010-02-03 2017-09-05 Oracle International Corporation Declarative attribute security using custom properties
US9183088B2 (en) * 2010-03-31 2015-11-10 Salesforce.Com, Inc. Reducing database downtime
CN102346744B (zh) 2010-07-30 2013-11-13 国际商业机器公司 用于在多租户应用系统中处理物化表的装置
US8805882B2 (en) * 2011-01-20 2014-08-12 Microsoft Corporation Programmatically enabling user access to CRM secured field instances based on secured field instance settings
US9002803B2 (en) 2011-06-07 2015-04-07 Workday, Inc. Role-based security policy for an object-oriented database system
DE112013000473T5 (de) 2012-02-01 2014-09-18 International Business Machines Corporation Verfahren zum Optimieren der Verarbeitung von Daten mit eingeschränktem Zugriff
US9275112B2 (en) * 2012-11-09 2016-03-01 Microsoft Technology Licensing, Llc Filtering views with predefined query
US20140380139A1 (en) * 2013-06-21 2014-12-25 Microsoft Corporation Embedded experience through bidirectional integration of crm applications and spreadsheet applications
US20150026075A1 (en) * 2013-07-16 2015-01-22 Microsoft Corporation Control of crm data based on spreadsheet actions
US20150286487A1 (en) * 2014-04-04 2015-10-08 CafeX Communications Inc. System for monitoring and analyzing application data to proactively offer assistance
US9824227B2 (en) 2015-01-26 2017-11-21 Red Hat, Inc. Simulated control of a third-party database
US10454938B2 (en) * 2015-05-28 2019-10-22 International Business Machines Corporation Dynamic permission roles for cloud based applications
US11640544B2 (en) 2020-06-18 2023-05-02 Microsoft Technology Licensing, Llc Advances in data provisioning including bulk provisioning to aid management of domain-specific data via software data platform
US11704306B2 (en) 2020-11-16 2023-07-18 Snowflake Inc. Restricted views to control information access in a database system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9402935D0 (en) * 1994-02-16 1994-04-06 British Telecomm A method for controlling access to a database
US6134549A (en) * 1995-03-31 2000-10-17 Showcase Corporation Client/server computer system having personalizable and securable views of database data
US5751949A (en) * 1995-05-23 1998-05-12 Mci Corporation Data security system and method
JP2001003459A (ja) * 1999-06-24 2001-01-09 Sumitomo Metal Ind Ltd 構造物用管継手
JP2001075854A (ja) 1999-08-31 2001-03-23 Hitachi Ltd データ管理方法、およびデータ管理システム、ならびにデータ管理プログラムを格納した記憶媒体
US6820082B1 (en) * 2000-04-03 2004-11-16 Allegis Corporation Rule based database security system and method
US6581060B1 (en) * 2000-06-21 2003-06-17 International Business Machines Corporation System and method for RDBMS to protect records in accordance with non-RDBMS access control rules
US6516317B1 (en) * 2000-12-21 2003-02-04 Oracle Corporation Method and apparatus for facilitating compartmentalized database user management
US6976023B2 (en) * 2002-04-23 2005-12-13 International Business Machines Corporation System and method for managing application specific privileges in a content management system
US7240046B2 (en) * 2002-09-04 2007-07-03 International Business Machines Corporation Row-level security in a relational database management system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100910336B1 (ko) 2006-10-19 2009-07-31 신동혁 논리 프로세스 및 물리 프로세스 모델을 맵핑한 비즈니스 프로세스 모델을 관리하기 위한 시스템 및 방법

Also Published As

Publication number Publication date
KR101224822B1 (ko) 2013-01-21
US7562092B2 (en) 2009-07-14
CA2526286A1 (en) 2006-06-22
AU2005237168B2 (en) 2010-11-04
AU2005237168A1 (en) 2006-07-06
CN1794232B (zh) 2010-09-29
JP4906340B2 (ja) 2012-03-28
CN1794232A (zh) 2006-06-28
JP2006179009A (ja) 2006-07-06
AU2005237168A2 (en) 2010-06-03
US20060136479A1 (en) 2006-06-22
EP1675030A1 (en) 2006-06-28

Similar Documents

Publication Publication Date Title
KR101224822B1 (ko) Crm 데이터베이스에서의 보안 뷰
CN111602131B (zh) 多租户数据库系统中的安全数据共享
US7720863B2 (en) Security view-based, external enforcement of business application security rules
JP4398371B2 (ja) リレーショナル・データベースへのアクセスを制御する方法
US7346617B2 (en) Multi-table access control
US6578037B1 (en) Partitioned access control to a database
US9652788B2 (en) Method and apparatus for logging privilege use in a distributed computing environment
US8086615B2 (en) Security data redaction
US9002803B2 (en) Role-based security policy for an object-oriented database system
US9524308B2 (en) System and method for providing pluggable security in an enterprise crawl and search framework environment
US20110313981A1 (en) Data Privacy, Redaction and Integrity for Relational Databases
US20050262087A1 (en) Apparatus and method for maintaining row set security through a metadata interface
US20080235180A1 (en) Extensibility mechanism for analysis services unified dimensional model
US7970790B2 (en) Cell-based security representation for data access
US20150067886A1 (en) Dynamic data masking system and method
US10943027B2 (en) Determination and visualization of effective mask expressions
US20090012987A1 (en) Method and system for delivering role-appropriate policies
US8190673B2 (en) Enforcement of object permissions in enterprise resource planning software
US8732847B2 (en) Access control model of function privileges for enterprise-wide applications
US20230315893A1 (en) Row, Column Level Security for Data Lakes and its Uniform Enforcement Across Analytic Query Engines
WO2015005765A2 (en) Security model switching for database management system
US20060136361A1 (en) Extensible, customizable database-driven row-level database security
Eavis et al. OLAP authentication and authorization via query re-writing
US20180107832A1 (en) Table privilege management
Ferrari Discretionary Access Control for Relational Data Management Systems

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee