CN1794232A - Crm数据库的安全视图 - Google Patents

Crm数据库的安全视图 Download PDF

Info

Publication number
CN1794232A
CN1794232A CNA2005101271209A CN200510127120A CN1794232A CN 1794232 A CN1794232 A CN 1794232A CN A2005101271209 A CNA2005101271209 A CN A2005101271209A CN 200510127120 A CN200510127120 A CN 200510127120A CN 1794232 A CN1794232 A CN 1794232A
Authority
CN
China
Prior art keywords
user
view
computer
row
database
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CNA2005101271209A
Other languages
English (en)
Other versions
CN1794232B (zh
Inventor
E·A·马蒂南兹
J·S·格雷瓦尔
范岷
T·M·赖特尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1794232A publication Critical patent/CN1794232A/zh
Application granted granted Critical
Publication of CN1794232B publication Critical patent/CN1794232B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Abstract

本申请叙述了一种方法和系统,用于使用实现安全协议的视图定义访问按其它方式不可访问的DBMS的应用数据库中的信息。

Description

CRM数据库的安全视图
发明领域
本发明一般涉及提供对数据库管理系统中的数据库表的安全访问的方法。
发明背景
在数据库管理系统(DBMS)中,数据存储在一个或多个数据容器中。每个容器都包含记录且每个记录内的数据被组织成一个或多个字段。在关系数据库系统中,数据容器被称作表,记录被称作行,且字段被称作列。在面向对象的数据库中,数据容器被称作对象类,记录被称作对象,且字段被称作属性。其它数据库架构可使用不同的术语。本申请的要求不限于任何特殊类型的数据容器或数据库架构。
具有广泛数据处理要求的许多应用常依靠独立的DBMS帮助管理应用数据。这种应用可包括业务应用,包含客户关系管理(CRM)系统和企业资源计划(ERP)系统。使用分开的独立DBMS允许应用的设计者依靠DBMS来处理复杂的批量数据存储功能,同时使设计者得到解放并可以聚焦于创建应用特定功能。除了劳动分工的好处,这种双系统模型提供了简单和普遍使用的安全框架,其中将安全功能局限于应用系统。例如,包括使用DBMS的CRM系统的许多专有业务应用仅通过CRM系统提供对CRM数据的访问,从而确保通过CRM应用提供的安全功能来管理数据访问和数据安全。在该模型中,出于维护的目的,CRM系统普遍实现仅能通过CRM应用访问或者由系统管理员访问的封闭的私有数据库实例。
图2示出了现有系统中使用的安全模型。在该安全模型中,设置DBMS,以拒绝对应用数据库的一般访问,仅允许软件系统本身或者可能是系统管理员访问数据库。按此方式,对应用系统数据的所有访问都由应用控制。
安全性被导离DBMS并局限于业务应用内的一个原因在于典型DBMS的安全功能常不适于处理应用特定的安全要求。例如,作为一DBMS的Microsoft SQLServer仅对表级别提供数据保护。诸如Microsoft CRM的许多业务应用会要求特殊的行级别保护。在行级别安全中,基于用户的角色和特权,结果集与隐藏的或阻止的数据行一起返回。诸如Microsoft CRM的CRM系统一般通过使用一般可执行软件或者通过应用编程接口(API)编程的应用软件执行该行级别安全。
许多独立软件供应商不希望使用DBMS级别安全的另一个理由在于这会要求供应商特定的设计考虑和对特殊DBMS的支持。这会使得软件的交叉兼容更难于实现。在数据库安全被转入应用软件本身的系统中,可以减少对于随应用使用的特定DBMS的考虑。
虽然该普通安全系统便于CRM系统设计者实现本地化安全,但常希望或需要对应用数据库中存储的数据进行应用本身不适合于或不被设计成执行的分析。在诸如Microsoft CRM的CRM系统的示例中,会期望分析客户数据的趋势、营销模式、需求统计、预算考虑、操作考虑等,这是CRM系统未被设计执行的。此外,没有方便的方法可以与诸如企业资源计划(ERP)应用的其它有关业务应用共享Microsoft CRM数据。
在现有的安全模型下,提供对CRM数据的访问的一个选项是设计对CRM系统的接口,以便通过CRM系统提取必要的数据。这可通过向用户提供API以经由CRM系统检索数据来进行。但根据CRM系统,该过程会是极其费时和复杂的,因为需要用户在编写代码以通过应用接口进行通信方面非常熟练。该方法不是许多数据分析员适合于执行的过程。
包括微软office产品套装(例如,Microsoft Word,Microsoft Excel,MicrosoftPowerPoint等)的许多应用程序能访问支持SQL和ODBC的任何DBMS。因此,提供对Microsoft CRM数据库的访问的另一个更方便的选项是打开用于经由DBMS访问用户组的数据库。但如上所述,DBMS通常仅允许下至表级别的保护,且不允许表中行特定信息的微级别保护。特定的公司可能不希望数据分析员看到所有的行数据而仅仅是行的一子集。如果要实现该选项,则需要在改变雇员业务角色和创建新业务角色方面进行附加的业务过程改变,这是许多独立软件供应商(ISV)不希望客户负担的。此外,允许开放的数据库连接将增加会大大损害业务的应用数据破坏的危险。虽然将数据库对系统管理员开放是合理的,但开放数据库用于数据分析员组的完全访问会造成会使诸如CRM数据库的数据库易受危害的安全问题。
因此,需要一种改良的方法和系统,用于经由DBMS访问安全应用数据库中的数据而不危害安全应用的安全目标。
发明内容
本申请的权利要求叙述了一种方法和系统,用于使用实现安全协议的视图定义访问按其它方式不可访问的DBMS的应用数据库中的信息。虽然特定方法和系统被描述成应用于CRM系统实施例,特别是Microsoft CRM,但应强调本系统也可应用于其它安全应用数据库。
所要求的方法和系统可以是其中DBMS被设定为允许对CRM数据库的离散访问的分层安全访问模型。用户可例如用集成的DBMS-操作系统验证协议登录到DBMS并获得对应用数据库实例的访问。但,对数据库中包含的对象的进一步访问被限制于数据库视图。此外,该模型仅可允许对视图的访问以提供视图标识符的列表,获得视图属性的列表,以及执行视图。
视图用作数据库中它所对应的特定表的安全代理。此外,通过使匹配于用户角色和用户特权与表—行关联和特权的简单查询条件附加到视图,可以用相对容易的方式提供安全性。此外,因为经由DBMS进行访问,所以不需要进一步编码接口方法以提供与用于处理CRM数据的次级应用的互操作性。这样,可以进行有效的数据库提取和查询过滤,而无需了解代码的数据分析员。
附图说明
图1示出了可根据权利要求操作的计算系统的框图。
图2示出了使用Microsoft CRM和Microsoft SQL Server的现有CRM-DBMS模型的普通配置。
图3示出了所要求的系统的实施例。
图4示出了为实现所要求的方法和系统的DBMS的可能的一组安全参数。
图5示出了用于权利要求的实施例的视图定义的流程图。
图6示出了使用安全视图实现的安全过程。
具体实施方式
虽然以下文本阐述了许多不同实施例的详细描述,但应理解,描述的法律范围由本专利结尾处阐述的权利要求书的文字限定。详细描述仅仅是示例性的而非描述所有可能的实施例,因为描述所有可能实施例即使可能也是不切实际的。可用当前技术或本申请提交前开发的技术来实现大量可选实施例,其仍落在权利要求书的范围之内。
还应理解,除非用句子“如这里所使用的,术语‘’这里定义为...”或类似的句子,否则不明确或通过暗示限制术语的意思,使其超出其一般或普通意思,且这种术语不应解释为限制于基于本专利任何部分(权利要求的语言之外)中进行的任何陈述的范围内。本专利最后部分的权利要求书中所述的任何术语在本专利中按与单个意思相一致地引用,这是为了清楚起见而不干扰读者,但并非有意使这种权利要求术语通过暗示或其它方式限制于该单个意思。最后,除非通过叙述单词“装置”和功能而不叙述任何结构来定义权利要求元素,不应认为任何权利要求元素的范围都基于35U.S.C.§112、第六段的应用来解释。
图1示出了合适计算系统环境100的示例,其上实现了所要求的方法和装置的组件的系统。计算系统环境100仅仅是合适的计算环境的一示例而非有意暗示关于权利要求书的方法和装置的使用或功能范围的任何限制。计算环境100不应被解释为具有关于示例性操作环境100中说明的任何一个组件或组件组合的任何依赖或要求。
所要求的方法和装置的组件可同大量其它通用或专用计算系统环境或配置一起操作。适合与权利要求的方法或装置一起使用的已知计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上装置,多处理器系统,基于微处理器的系统、置顶盒、可编程消费电子产品、网络PC、小型机、大型机、包括任何以上系统或装置的分布式计算环境,等等。
在由计算机执行的诸如程序模块的计算机可执行指令的普通环境中描述所要求的方法和装置的组件。一般,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特殊任务或实现特殊的抽象数据类型。这些方法和装置还可在分布式计算环境中实施,在分布式计算环境中通过经由通信网络链接的远程处理装置执行任务。在分布式计算环境中,程序模块可位于包括存储器存储装置的本地和远程计算机存储媒体中。
参考图1,实现所要求的方法和装置的组件的一示例系统包括计算机110形式的通用计算装置。计算机110的组件可包括,但不限于,处理单元120、系统存储器130和将包括系统存储器的各种系统组件耦合到处理单元120的系统总线121。系统总线121可以是几种总线结构中的任一种,包括使用任何总线架构的存储器总线或存储器控制器、外围总线和本地总线。作为示例而非限制,这样的架构包括工业标准结构(ISA)总线、微通道架构(MCA)总线、扩展ISA(EISA)总线、视频电子标准协会(VESA)本地总线和也称作Mezzanine总线的外围组件互连(PCI)总线。
计算机110通常包括多种计算机可读媒体。计算机可读媒体可以是可由计算机110访问的任何可用媒体,包括易失性和非易失性媒体、可移动和不可移动媒体。作为示例而非限制,计算机可读媒体可包括计算机存储媒体和通信媒体。计算机存储媒体包括按用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性、可移动和不可移动媒体。计算机存储媒体包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储技术,CD-ROM、数字通用盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储或其它磁性存储装置,或者可用于存储所需数据并可由计算机110访问的任何其它介质。通信介质通常包含诸如载波的调制的数据信号或其它传输机制中的计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传递媒体。术语“调制的数据信号”表示具有使其一个或多个特征按一定方式设定或变化以在信号中编码信息的信号。作为示例而非限制,通信媒体包括诸如有线网络或直线连接的有线媒体以及诸如声学、RF、红外线和其它无线媒体的无线媒体。以上的任何组合也应包含在计算机可读媒体的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储媒体,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。包含基本例程的基本输入/输出系统133(BIOS)通常存储于ROM 131中,这些基本例程帮助例如在启动过程中在计算机110内的元件之间传输信息。RAM132通常包含可立即访问和/或当前由处理单元120操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可包括其它可移动/不可移动的、易失性/非易失性计算机存储媒体。仅作为示例,图1示出了从不可移动的非易失性磁性媒体读取或写入的硬盘驱动器140、从可移动的非易失性磁盘152读取或写入的磁盘驱动器151以及从诸如CD ROM或其它光学媒体的可移动的非易失性光盘156读取或写入的光盘驱动器155。示例性操作环境中可使用的其它可移动/不可移动、易失性/非易失性计算机存储媒体包括,但不限于,磁带盒、闪存卡、数字通用盘、数字录像带、固态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这里被给予不同数字,以至少说明它们是不同的拷贝。用户可通过诸如键盘162和通常称作鼠标、轨迹球或触摸垫的定位装置161的输入装置将命令和信息输入计算机20。其它输入装置(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入装置常通过与系统总线耦合的用户输入接口160连接到处理单元120,但可以通过其它接口和总线结构连接,诸如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示装置也经由诸如视频接口190的接口连接到系统总线121。除了监视器之外,计算机还可包括其它外围输出装置,诸如通过输出外围接口190连接的扬声器197和打印机196。
计算机110可使用与诸如远程计算机180的一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它普通网络接点,且通常包括以上关于计算机110描述的许多或全部元件,尽管图1中仅示出存储器存储装置181。图1中所述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这种联网环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍的。
在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于在诸如因特网的WAN 173上建立连接的其它装置。内置或外置的调制解调器172可经由用户输入接口160或其它合适机制连接到系统总线121。在联网环境中,以上相对于计算机110描述的程序模块或其一部分可存储在远程存储器存储装置中。作为示例而非限制,图1示出了驻留在存储器装置181中的远程应用程序185。可以理解,所示的网络连接是示例性的且可以使用在计算机之间建立通信链接的其它装置。
图2示出了使用Microsoft CRM系统200和Microsoft SQL Server 210的现有CRM-DBMS模型的普通配置。当前,除了通过Microsoft CRM系统200本身或被授权管理DBMS的系统管理员220之外,Microsoft CRM拒绝经由DBMS对CRM数据库的全部访问,如框215所示。但是,除了其用户接口,Microsoft CRM向Microsoft CRM数据库提供了一种用于访问数据的附加方法。该访问是利用被称作ExecuteQuery 230的Microsoft CRM应用编程接口(API)来完成的,该应用编程接口使用Fetch XML,一种XML格式的查询命令代码。用户240可编写Fetch XML命令并将这些命令发送到ExecuteQuery 230。ExecuteQuery随后可解释该FetchXML查询命令,访问Microsoft CRM数据库250,并返回结果集。虽然该方法看起来绕过了CRM-DBMS结构的安全,但在提供结果集之前API实际上对查询命令执行了基于Microsoft CRM的安全过滤。如上所述,典型的用户通常不会很好地具备编写应用级代码,以便从应用中提取数据的能力。即使采用ExecuteQuery接口230,编写Fetch XML也是复杂和费时的。
图2进一步示出了管理含数据库表251、261的集合的几个数据库250、260的Microsoft SQL Server 210。通常,分离的数据库实例可用于容纳用于特殊应用的表的集合。在Microsoft CRM系统200的示例中,DBMS 210可具有一个被指定用作Microsoft CRM数据库250的数据库,它可存储诸如客户信息的与CRM系统相关的大部分数据以及与CRM系统相关的各种任务信息。DBMS可管理几个数据库并可能只有一个应用数据库实现所要求的方法和系统。对于CRM数据库250,图2示出:对于一般用户240,阻断对CRM数据库250的访问,且对CRM数据的所有访问必须经由CRM系统200进行,或者以程序方式通过诸如ExecuteQuery 230的API。
权利要求的业务过程的实施例于图3中示出,其示出了访问CRM数据库310的Microsoft Excel 300的使用。Microsoft Excel是用于分析应用数据的普通工具。因为Microsoft套装提供对使用SQL和ODBC的任何DBMS的连接能力,MicrosoftExcel可连接到Microsoft SQL Server 320并随后连接到Microsoft CRM数据库310。事实上,提供对使用SQL和ODBC的DBMS的连接能力的许多第三方系统330也可连接到Microsoft SQL Server 320。Microsoft Excel随后可查询与特殊CRM表350相对应的可用视图340,并请求信息。此外,该请求可基于用户360的角色和特权信息提供行过滤的结果。现有技术的系统可继续要求完全开放的数据库或对CRM系统本身的定制接口。此外,现有技术系统不提供所要求系统的特定实施例的唯一行过滤能力,其中可基于分配给特殊用户及行的角色和特权以来过滤行。
图3还示出了CRM数据库310具有一组表350的一组对应视图340。可针对通过DBMS登录到数据库的用户保护每个表350。此外,每个表350都实际上都可向一般用户360隐藏以提升安全性(由虚线示出)。视图340可用作访问数据库表350的代理。应注意,虽然能看见视图340,但可保护它们的实际定义以防止用户发现视图的实现。在某些情况中,将对视图的访问限制于以下方面是有利的:启用可用视图的列表,用于视图执行的参数的列表,以及用于执行所选视图的执行特权。
图4示出了DBMS为了实现权利要求的实施例所具有的参数设定。这些参数设定可以是用户特定的或者可以由系统管理员根据特殊情况改变。例如,有时系统管理员会允许业务开发者修改视图定义,在这种情况中业务开发者将被提供修改特权。在其它情形中,提供超过图4所示设定的任何附加特权是不合适的。例如,可能从不向销售人员提供修改视图定义的权利,因为这将会允许销售人员观看与其它销售人员相关的未授权数据。应注意,虽然这些设定被应用于多数DBMS用户,但系统管理员通常对数据库和数据库对象(包括表和视图两者)具有完全访问。
图5示出了用于权利要求的实施例的视图定义的流程图500。在该流程图中,安全例程501可对数据检查角色502和特权503。如果特权检查503失败,则会用空数据集返回记录。角色检查502失败会导致完全隐藏记录509。此外,除了安全过滤,视图还执行选择清单转换505、物理列名字与逻辑数据库名字504、507的映射,以及日期—时间转换506,使数据分析员更容易用数据集508进行工作。日期—时间转换可用于获得具有一种格式的表的日期或时间属性并转换成第二种格式,诸如基于应用的格式。选择清单转换可用于向选择清单值提供一描述字符串。例如,发货动作列表的选择清单转换可将诸如0、1、2、3的数据库选择清单值转换成FedEx、UPS、USPostMail等。此外,物理列名字到逻辑数据库名字的映射可允许将用户友好的名字分配给数据库命名架构中使用的列特定的名字。
CRM系统可将业务层次结构集成入其安全实现并常包括与所有者和业务单元相对应的它们数据实体中的字段。诸如Microsoft Windows的操作系统也可包含层次结构,帮助用户角色参加其中角色具有一组特权的组。在权利要求的实施例中,安全视图可被设计成基于层次所有权结构返回行,充分利用现有的CRM应用和操作系统环境。该潜在安全检查模型在图6中示出。访问检查过程600首先确定用户是否是对象的所有者,如框601所示。如果是,则在框602中用户具有完全的访问。如果用户不是对象所有者,则例程610基于对象的所有权关系确定访问该对象的所需特权深度。如果用户和对象属于相同的业务单元,框611,则最小深度是本地(Local)612。如果对象的所有业务单元与用户的业务单元相同,框613,则最小所需深度是深入(Deep)614。如果对象在与用户相同的组织中,框615,则最小所需深度是全局(Global)616。一旦计算出最小特权深度,框620、621和622就检查用户的特权是否具有最小所需深度。如果用户的特权具有最小所需深度或以上,如在框620、621和622中所确定的,就在框602中准许访问。如果否,则例程600在框630中确定对象该对象是否被明确共享给用户或用户作为其成员的团队。如果是,则在框602中准许访问,否则在框640中拒绝访问。
图6所示的特权深度被分类为基本、本地、深入或全局。具有基本特权深度的用户具有对该用户所有的、共享给该用户的或者共享给该用户作为其成员的团队的任何对象的权限。具有本地特权深度的用户具有基本特权深度的权利,并且还具有对用户的业务单元中的任何对象的权利。具有深入特权深度的用户具有本地特权深度的权利,并且还具有对用户所属业务单元的子业务中的任何对象的权利。这包括任何深度处的子业务,而不仅仅是直接层次的子业务,因此包括子业务的子业务。具有全局特权深度的用户具有对用户组织中的任何对象的权限(因此,全局是所有其它特权级别的超集)。
可用于实现图6的安全过程的SQL语句如下所示:
SELECT[要检索的Account表中的列]
FROM Account
WHERE
(
  --由用户所有的对象
  Account.OwningUser=[Current User ID]
     or
  --由用户的业务单元所有的对象-本地访问
  Account.OwningBusinessUnit=[Current User Business ID]
  --基于角色的访问
     or
     --深入访问
     (Account.OwningBusinessUnit in Select biz.SubBusinessId fromBusinessUnitMap as biz where biz.BusinessId=u.BusinessUnitId)and PrivilegeDepth=[Deep]
     or
     --全局访问
     (Account.OwningBusinessUnit in Select org.SubBusinessId fromOrganizationMap org where org.OrganizationId=u.OrganizationId)and PrivilegeDepth=[Global]
       or
)
   --共享给用户的对象
   or
   Account.AccountId in
   (
       select POA.ObjectId from PrincipalObjectAccess POA
       join SystemUserPrincipals sup on POA.PrincipalId=sup.PrincipalId
             where sup.SystemUserId=[Current User ID]and
              POA.ObjectTypeCode=2AND
              (POA.AccessRightsMask & 1)=1
    )
与使用安全描述符字段以提供用于基于API的安全处理的批量指令的现有安全模型不同,本权利要求可依靠仅引用每个数据库对象的离散所有权属性的安全模型,这些属性常常已经是对象的一般属性结构的一部分。如上所述,安全特权可在基于所有权关系的集合中被处理。这样,处理可以更快。此外,因为所要求的方法和系统的安全模型完全在DBMS中处理行,而非依靠API,所以处理可以更快,因为专用DBMS处理内部指令常比在通信通道上检索行集合并解释较大的安全描述符的API更快。
此外,CRM-DBMS系统的用户现在可经由安全视图提供的虚拟表与数据库表连接。用户可用与使用与操作系统集成的安全系统的SQL-ODBC驱动器兼容的其它分析工具的主机执行数据分析。它向诸如Microsoft Offic的应用套装提供无缝集成,因为用户现在可以使用类似查询向导的工具打开视图,类似于打开数据库表,而不需要用户清楚下层实现。
作为示例,用户可使用安全视图将CRM相关数据输入诸如Excel的电子表格程序,其中可以对数据进行大量统计操作。这可以在不知道任何计算机编码语言的情况下实现,因为可以使用简单的弹出查询向导类型的工具。此外,可以完成输入而不必经过分离的安全过程来访问数据库,因为安全局限于DBMS。最后,通过对数据的视图而非实际数据进行操作,可以完成输入和分析而不更改数据库中的下层数据。
虽然以上文本阐述了许多不同实施例的详细描述,但应理解,本专利的范围由本专利结尾处阐述的权利要求的文字限定。详细描述仅仅是说明性的而非描述所有可能的实施例,因为描述所有可能实施例即便可能也是不切实际的。利用当前技术或者本专利提交日期之后开发的技术可以实现大量可选实施例,这些仍落在权利要求的范围之内。
因此,可在这里所描述和说明的技术和结构中进行许多修改和变形,而不背离本权利要求的精神和范围。因此,应理解,这里描述的方法和装置仅仅是说明性的而非限制权利要求书的范围。

Claims (20)

1.一种具有用于创建数据库的安全视图的计算机可执行指令的计算机可读介质,包括:
创建包含至少一个数据库表和至少一个数据库视图的数据库,其中该数据库表具有行ID、行业务单元和行所有者;
允许用户访问和执行所述数据库视图同时防止用户查看和直接访问所述数据库表,其中所述用户具有相关联的用户ID、相关联的用户业务单元、相关联的用户业务组和相关联的特权深度;以及
基于来自包括用户ID、用户业务单元、用户业务组和特权深度的参数集合中的至少一个参数以及来自包括行ID、行业务单元和行所有者的参数集合中的至少一个参数,为所述数据库视图选择所述数据库表的行的集合。
2.如权利要求1所述的计算机可读介质,其特征在于,还包括执行数据库查找,以获得用户ID、用户业务单元、用户业务组、特权深度、行ID、行业务单元和行所有者。
3.如权利要求1所述的计算机可读介质,其特征在于,还包括搜索一高速缓存,以获得包括用户ID、用户业务单元、用户业务组以及特权深度的集合中的至少一个,同时执行数据库查找以获得包括行ID、行业务单元和行所有者的集合中的至少一个。
4.如权利要求1所述的计算机可读介质,其特征在于,还包括基于以下至少一个选择行:
用户是否是行所有者;
行业务单元是否是用户业务单元且特权深度是否是本地;
行业务单元是否包含在与用户业务单元相关联的业务单元的集合中以及特权深度是否是深入;
行业务单元是否在与用户业务组相关联的业务单元的集合之中以及特权深度是否是全局;以及
行ID是否与用户ID相关联。
5.如权利要求1所述的计算机可读介质,其特征在于,还包括向用户分配用于查看和访问所述数据库视图的特权。
6.如权利要求1所述的计算机可读介质,其特征在于,还包括不向用户分配用于查看和访问所述数据库表的特权。
7.如权利要求1所述的计算机可读介质,其特征在于,还包括使视图能被列在SQL列表视图命令中。
8.如权利要求5所述的计算机可读介质,其特征在于,所述特权包括允许用户查看视图的列表。
9.如权利要求5所述的计算机可读介质,其特征在于,所述特权包括允许用户执行视图。
10.如权利要求5所述的计算机可读介质,其特征在于,所述特权包括允许用户确定视图的属性的集合。
11.如权利要求1所述的计算机可读介质,其特征在于,还包括对所选行执行选择清单评估,对所选行执行日期一时间转换,对视图参数执行逻辑名到物理名转换,以及对所选行执行物理名到逻辑名转换中的至少一个。
12.如权利要求1所述的计算机可读介质,其特征在于,还包括如果用户没有所需特权深度就返回空集。
13.如权利要求1所述的计算机可读介质,其特征在于,还包括如果用户没有已知的用户ID就返回空集。
14.如权利要求1所述的计算机可读介质,其特征在于,还包括使用数据库管理系统来控制对所述数据库表和视图的访问。
15.如权利要求1所述的计算机可读介质,其特征在于,还包括经由与所述数据库管理系统的连接将视图结果发送给非数据库应用。
16.如权利要求15所述的计算机可读介质,其特征在于,所述非数据库应用是电子表格程序。
17.一种计算机系统,它包括:
提供用户验证服务的操作系统;
用于管理数据库集合的数据库管理系统,该数据库管理系统使用所述用户验证服务来验证与数据库管理系统相连的用户;
客户关系管理系统;
由所述客户关系管理系统通过所述数据库管理系统访问的客户数据库,其中所述客户数据库包括客户数据库表;
存储在客户数据库处的视图定义,用于提供客户数据库表的行,其中该数据库管理系统使登录到数据库管理系统的用户能查看视图定义的列表并执行该视图,同时防止用户查看和访问该客户数据库表;
且其中,所述视图基于来自由用户ID、用户业务单元、用户业务组和特权深度构成的参数集合中的至少一个参数以及来自由行ID、行业务单元和行所有者构成的参数集合中的至少一个参数提供客户数据库表的行。
18.如权利要求17所述的系统,其特征在于,所述客户关系管理系统包括多个数据库表和多个视图定义,其中每个客户数据库表都具有相应的视图定义。
19.如权利要求17所述的系统,其特征在于,在以下一种情况下,视图定义提供客户数据库表的行:
执行视图定义的用户是行所有者;
行业务单元是用户业务单元且在特权深度是本地时;
当行业务单元在与用户业务单元相关联的业务单元集合之中且在特权深度是深入时;
当行业务单元在与用户业务组相关联的业务单元集合之中且在特权深度是全局时;以及
当行ID与用户ID相关联时。
20.一种计算装置,它包括:
能产生视频图像的显示单元;
输入装置;
操作上耦合到所述显示单元和所述输入装置的处理装置,所述处理装置包括处理器和操作上耦合到所述处理器的存储器;
网络接口,它与网络和所述处理装置相连接;
所述处理装置被编程,以便:
管理包括表和视图的数据库,其中该处理装置阻止用户访问和查看表同时该处理装置允许用户访问和执行视图;
以及其中,该视图基于来自由用户ID、用户业务单元、用户业务组和用户特权深度构成的参数集合中的至少一个参数以及来自由行ID、行业务单元和行所有者构成的参数集合中的至少一个参数选择该表的行的集合。
CN2005101271209A 2004-12-22 2005-11-22 创建数据库的安全视图的方法 Expired - Fee Related CN1794232B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN1794232A true CN1794232A (zh) 2006-06-28
CN1794232B CN1794232B (zh) 2010-09-29

Family

ID=35998563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101271209A Expired - Fee Related CN1794232B (zh) 2004-12-22 2005-11-22 创建数据库的安全视图的方法

Country Status (7)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346744A (zh) * 2010-07-30 2012-02-08 国际商业机器公司 用于在多租户应用系统中处理物化表的装置

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
KR100910336B1 (ko) 2006-10-19 2009-07-31 신동혁 논리 프로세스 및 물리 프로세스 모델을 맵핑한 비즈니스 프로세스 모델을 관리하기 위한 시스템 및 방법
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
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
GB2513798B (en) 2012-02-01 2021-03-03 Finjan Blue Inc A method for optimizing processing of restricted-access data
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346744A (zh) * 2010-07-30 2012-02-08 国际商业机器公司 用于在多租户应用系统中处理物化表的装置
US8533159B2 (en) 2010-07-30 2013-09-10 International Business Machines Corporation Processing materialized tables in a multi-tenant application system
CN102346744B (zh) * 2010-07-30 2013-11-13 国际商业机器公司 用于在多租户应用系统中处理物化表的装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1794232B (zh) 创建数据库的安全视图的方法
CN100430951C (zh) 向用户/组授予访问控制列表所有权的访问控制系统和方法
US7583861B2 (en) Intelligent medical image management system
JP4222947B2 (ja) マルチメディア・コンテンツ管理オブジェクトを表現するための方法、プログラム、及びシステム
US7865875B2 (en) Programming toolkit for developing case management software applications
CN100336059C (zh) 智能使用用户数据以抢先阻止违反访问控制的查询的执行
US7523077B2 (en) Knowledge repository using configuration and document templates
US8438141B2 (en) System and method for providing secure access to data with user defined table functions
CN1725219A (zh) 管理多用户存取预定义查询的系统与方法
US20060224628A1 (en) Modeling for data services
CN1684069A (zh) 计算机化财务系统的提取、变换和加载设计器模块
CN1975731A (zh) 用于管理对数据库中数据的访问的系统和方法
CN1508739A (zh) 用于管理资源的系统和方法
CN1768325A (zh) 公开内容的抽象数据库抽象中的规则应用管理
CN1967538A (zh) 存储状态指定健康相关情节数据的方法和系统
US20080016048A1 (en) Intelligent condition pruning for size minimization of dynamic, just in time tables
CN101030207A (zh) 用于使输入数据和已有数据的视觉比较容易的系统和方法
CN1591444A (zh) 整合应用服务和应用程序之间的资源管理的系统和方法
JP5873078B2 (ja) ビジネスインテリジェンスサーバとともに用いられるデータに対する多言語サポートを提供するためのシステムおよび方法
US9594805B2 (en) System and method for aggregating and integrating structured content
KR100961813B1 (ko) 포커스 데이터에 근거한 동적 인증
CN1729448A (zh) 透明ejb支持和水平数据分割
US20060136361A1 (en) Extensible, customizable database-driven row-level database security
Lee et al. A metadata oriented architecture for building datawarehouse
Greenwald et al. Professional oracle programming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20141122

EXPY Termination of patent right or utility model