CN1318163A - 可选择性定义对应用程序功能部件访问的系统和方法 - Google Patents

可选择性定义对应用程序功能部件访问的系统和方法 Download PDF

Info

Publication number
CN1318163A
CN1318163A CN99811086A CN99811086A CN1318163A CN 1318163 A CN1318163 A CN 1318163A CN 99811086 A CN99811086 A CN 99811086A CN 99811086 A CN99811086 A CN 99811086A CN 1318163 A CN1318163 A CN 1318163A
Authority
CN
China
Prior art keywords
attribute
user
value
retrieval
name
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
CN99811086A
Other languages
English (en)
Other versions
CN1318163B (zh
Inventor
J·N·格什菲尔德
S·G·巴杰
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Electronic Data Systems LLC
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 Electronic Data Systems LLC filed Critical Electronic Data Systems LLC
Publication of CN1318163A publication Critical patent/CN1318163A/zh
Application granted granted Critical
Publication of CN1318163B publication Critical patent/CN1318163B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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
    • 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/99932Access augmentation or optimizing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Vehicle Body Suspensions (AREA)
  • Steering-Linkage Mechanisms And Four-Wheel Steering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

一种方法和系统用于定义用户对一个应用程序所具有的一个或多个功能部件的访问。一个或多个“属性”分配给计算机系统(5)的用户,并存储到数据表(11,13,15)中。每一个属性拥有一个名称标明被定义访问的功能部件(例如,访问数据库中数据的权力),还有一个值定义访问的权限。属性可以成组进行分配,从而减小为每个用户单独进行属性分配而准备的负担。当一个应用程序运行,属性被检索并执行,这样就依照所检索的属性,用户对应用程序功能部件的访问被定义。

Description

可选择性定义对应用程序功能部件访问的系统和方法
发明的技术领域
本发明一般涉及定义用户对计算机系统的访问,特别是多数用户对计算机系统中一个或多个可运行程序的功能部件进行访问时,具有选择性适应性地定义每一个用户的访问限制。
发明背景
在例如具有资源共享服务的部门环境的环境中,其中多个雇员和/或客户可以访问允许运行多个应用程序的计算机系统,这就需要可以依据特定用户或用户类别来限制对于应用程序一个或多个功能部件的访问。这里用到的术语“功能部件”包括了几乎所有可能的程序功能,举例说明,存取数据库中的数据,产生、查看和打印报告,以及发送和/或接受电子邮件。
目前,对于限制用户访问的适应性还未实现。在限制访问数据方面,最近Oracle公司在其数据库程序中使用了一种方法,用来在数据库水平上限制访问特殊数据表的用户权力。Oracle公司实现这一方法是通过给用户分配“角色”来限制对含有数据的表格访问,而不是对数据本身的访问。
限制对应用程序功能部件的访问,包括由Oracle角色限制的数据访问功能部件,需要更好的适应性,通过一个简单的例子来说明。以下是一张假设的数据表格,显示的是客户A、B和C在1998年6月15日上午进行的机密的金融交易,其中WDRWL表示提款,DPST表示存入,PYMNT表示支付。
表1
客产    时间    类型      金额
    1   A    9:15A   WDRWL    1000.00
    2   B    9:17A    DPST    2500.00
    3   B    9:24A    DPST    1750.00
    4   A    9:35A   PYMNT    5000.00
    5   C   10:02A   WDRWL      50.46
    6   A   10:41A    DPST     106.08
    7   C   10:47A   PYMNT     530.06
为了准备一份只是关于6月份客户A的机密交易报告,需要读取1、4、6行的数据,而不需要2、3、5、7行的。由于这一数据具有很大的敏感性,对于数据的读取仅限制在与任务(即客户A的交易报告)有关的范围内是非常必要的。
此外,用于准备A过去交易报告的应用程序可能具备产生不同类型报告的能力,包括除了显示过去的表现,还有计划未来任务的报告。依据被分配任务的对象,可能并不希望准许访问两种类型的生成报告。可能也不希望准许打印生成报告。
发明概要
根据本发明,一个或多个“属性”分配给可运行多个应用程序的计算机系统的用户。每一个属性是一名称-值对,其中名称标明应用程序功能部件或是被定义访问的功能部件(例如,读取数据,产生报告),值设置访问权限(例如,全部或部分数据)。属性可以成组分配以减少准备为每一个用户进行单独的属性分配的负担。
根据本发明,提供一种系统和方法用以定义至少运行一个应用程序功能部件的用户权力。依照该系统和方法,用户至少分配一个属性。属性存储在数据库的表格中。应用程序被用户运行,然后分配给用户的属性被检索。属性通过程序被执行,这样依据所检索的属性,定义用户对于应用程序功能部件的访问。
根据本发明进一步的特征,提供用以定义至少运行一个应用程序功能部件的用户权力的系统和方法,其中组至少分配一个属性,而组分配给用户。组存储在数据库的表格中。应用程序被用户运行,而后分配给用户的组被检索。分配给组的属性通过程序被执行,这样依据所检索的属性,定义用户对于应用程序功能部件的访问。
因此,本发明的目的是提供可选择性定义对应用程序功能部件的访问的能力,该功能部件对于计算机系统中给定的用户或用户组是可利用的。
本发明的进一步目的是,在限制用户对存储在面向表格的数据库中数据访问的能力方面,提供比现有水平更强的适应性。
为更好的理解本发明以及进一步目的,参考以下结合附图的描述,它的范围将在附带的权利要求中指出。
附图的简略描述
图1的框图示出了依照本发明的示例性系统;
图2的框图示出了用户属性系统分组方案的范例;
图3的流程图示出了本发明方法的一个具体实例。
发明的详尽描述
用户属性
图1的框图示出了依照本发明的示例性系统。计算机5运行数据库软件8,其保存有数据表,图示为表11、13和15。许多应用程序,图示为程序ABC、DEF和GHI,也在计算机5上运行。其中一些是用于检索和使用表11、13和15中的数据。每一个该系统的用户,X、Y和Z,可以通过终端访问计算机5,图示分别为计算机18、21和24。依照本发明,用户X、Y和Z分配到一个或多个“属性”。每一个属性有一个名称,标明访问被定义的应用程序功能部件(例如,访问数据库中的数据的权力),并且有一个定义访问权限的值,在后面将更详细的解释。如果不特别指出,如这里所用到的,术语属性将用来指名称-值对。
属性通过数据库软件8被保存在表中,并分别定义用户运行应用程序ABC、DEF和GHI的权力。例如,两个有用的属性为DATA_SCOPE和USER_LEVEL。DATA_SCOPE定义用户被允许访问的数据,并用前面表1作为范例,其拥有的可能的值为A、B、C或ALL,它们分别表示与客户A、B、C或所有三个客户有关的数据。USER_LEVEL是一较宽的属性,其通常定义用户选择运行一给定应用程序特定功能部件的访问级别。USER_LEVEL具有的值最好为ADMIN、REGULAR和RESTRICTED,其中ADMIN限制性最少,准许访问所有可用的应用程序功能部件,例如,检索报告,电子邮件,打印。RESTRICTED限制用户至基础应用程序功能部件,例如,产生报告。REGULAR级用户允许访问的功能部件比ADMIN级用户少,但比RESTRICTED级用户多。每个应用程序都可以基于它所提供的不同功能部件来解释USER_LEVEL属性。这就可以理解一些精确集中的属性,例如,与报告生成或打印有关,可以代替USER_LEVEL属性了。
两个属性DATA_SCOPE和USER_LEVEL,以及它们各自的值,当然都只是例子。本领域技术人员可以理解定义限制访问应用程序功能部件的属性是不受限制的。
分组
属性可以分配给单独的用户,或者如最佳实施例中,执行分组的方案,其范例在图2中显示。属性如DATA_SCOPE和USER_LEVEL以方块表示,“属性组”以三角形表示,而“受托人组”以圆形表示。属性组只包含属性及它们的值,而受托人组包括属性组和/或其它的受托人组,并不是单个的属性。在首选的分组方案实例中,每个属性组被限定为对应一个应用程序的属性,从而提供可为不同的应用程序分配不同的属性和值的能力。在一个可供选择的实例中,属性组可以独立于特殊的应用程序而生成,这样一个组就可以包含所有应用程序的属性。尽管定义对单独应用程序功能部件的访问缺少了一些适应性,但这样的系统是比较容易实现的。
在这首选的实施例中,表APPS,它至少包含一列为APP_CODE,定义有相关属性的合法应用程序的列表。回到前面参考图1,合法的APP_CODE值是ABC、DEF和GHI。在APPS表中的其它列将包含每个应用程序所必需的任何信息。例如,在一菜单系统中,它提供图标,用户可以从中选择应用程序运行,APP_NAME列将包含特殊字符串作为图标的可视标识它与APP_CODE列中的应用程序相关联。
每个属性组定义为由APP_CODE确定的特殊应用程序定义一组零或多个属性。零属性的属性组用来说明应该为应用程序分配属性的默认值。通常默认值是最具限制性的。另一种情况,零属性的属性组可以用来说明除了运行程序的能力,没有APP_CODE确定的访问被定义的应用程序功能部件。
图2的分组范例描绘了比前面讨论过与图1和表1有关的例子更复杂的用户结构。图2中属性组106、115、130、145和148属性分配如下:
表2
  属性组  应用程序   属性名称    属性值
   106    GHI  DATA_SCOPE     ALL
 USER_LEVEL    ADMIN
   115    DEF  DATA_SCOPE     ALL
 USER_LEVEL    REGULAR
   130    ABC  DATA_SCOPE      A
 DATA_SCOPE      B
 USER_LEVEL    REGULAR
   145    ABC  DATA_SCOPE      A
 DATA_SCOPE      B
 USER_LEVEL  RESTRICTED
   148    DBF  DATA_SCOPE      B
 DATA_SCOPE      C
 USER_LEVEL  RESTRICTED
在这最佳实施例中,每个属性组对应的应用程序在该组建立的时候被指定,并在讨论的范例中由上面表2中第二列显示出来。
回到图2,分配了属性组106的用户将有属性DATA_SCOPE107和USER_LEVEL108,及其各自的值ALL和ADMIN,如表2所示。根据属性,在程序被运行时,用户将被允许对应用程序GHI进行ADMIN式访问,并且被准许访问与客户A、B和C有关的数据。分配了属性组130的用户将有三个属性DATA_SCOPE133、DATA_SCOPE136和USER_LEVEL139,以及各自的值A、B和REGULAR。根据属性,这个用户可以访问与客户A或B相关的数据,并可以访问应用程序ABC的功能部件,它是为REGULAR身份的用户预先定义的。分配了属性组145的用户可以对应用程序ABC进行RESTRICTED式访问,并被准许访问与客户A和B有关的数据。分配了属性组148的客户将被允许对应用程序DEF进行RESTRICTED式访问,并被准许访问与客户B和C有关的数据。
一个或多个属性组可以分配给受托人组。图2中,例如受托人组142可以由属性组145和148组成,并且可以包括下面表3中最后两列所列出的所有的属性名称-值对:
表3
受托人组   属性组 应用程序   属性名称    属性值
  142    145    ABC  DATA_SCOPE       A
 DATA_SCOPE       B
 USER_LEVEL  RESTRICTED
   148    DEF  DATA_SCOPE       B
 DATA_SCOPE       C
 USER_LEVEL  RESTRICTED
受托人组也可以分配给其它的受托人组。这可以从图2中受托人组103看出,它包括了受托人组142的所有属性以及属性组130和135的所有属性。在图上端,受托人组100由受托人组103和属性组106组成。因此,受托人组100包含了五个属性组130、145、148、115和106的所有属性。
属性分组系统特别适用于给责任级别不同的雇员分配属性。例如,属性组115、130、145和148可以分配给低或中级雇员,而受托人组100、103和142以及属性组106可以分配给管理人员,其职责是监督下级雇员的工作,至于属性组106,就是运行他们自己的应用程序。
在优化的分组系统中,对属性组、受托人组和用户进行的属性分配保存在表ATTRIBUTES中。ATTRIBUTES表有三列:ASSIGNEE、ATTRIBUTE_NAME和ATTRIBUTE_VALUE。ASSIGNEE可以是属性组名称,受托人组名称或是用户。ATTRIBUTE_NAME是属性名称(例如,DATA_SCOPE)。ATTRIBUTE_VALUE是命名属性的特定值(例如,ALL)。
ATTRIBUTES表由七个基本命令来维护。范例命令是以用于Oracle数据库环境中的Oracle程序写出的。本领域的技术人员可以导出适于其它环境的类似命令。在以下的描述中,单引号中是参数,双引号中是字符串。
命令1
attr_utils.create_group('group_name','group_type','app_code')
'group_name':组的名称
'group_type':"ATTRIBUTE"或"ASSIGNEE"
'app_code':如果'group_type'是"ATTRIBUTE",这一字段是需要的;否则,它将被忽略
这个例程将生成一指定类型的组。如果'group_name'已经作为一个组或Oracle用户存在,例程将由于错误而退出。
根据例程,'group_name'和'group_type'值转换成大写。然后,有下面一列值的记录被插入ATTRIBUTES表:
设置ASSIGNEE='group_name'
设置ATTRIBUTE_NAME="ASSIGNEE_TYPE"
设  置    ATTRIBUTE_VALUE   =   "ATTRIBUTE_GROUP"或"ASSIGNEE_GROUP"基于'group_type'的变量值。
另外,如果'group_type'是"ATTRIBUTE",下面有另一列值的记录将被插入ATTRIBUTES表:
设置ASSIGNEE='group_name'
设置ATTRIBUTE_NAME="APP_CODE"
设置ATTRIBUTE_VALUE='app_code'。
命令2
attr_utils.assign_group('assignee','group_name')
'assignee':有分配了'group_name'的用户或受托人组。
'group_name':分配给受托人的组。
这个例程将把一个组分配给另外一个组或用户。如果'assignee'作为受托人组或用户不存在,将返回错误信息。如果'group_name'不存在,同样返回错误信息。
这个例程首先将'assignee'和'group_name'的值转换化大写。其次,有下面一列值的记录被插入ATTRIBUTES表:
设置ASSIGNEE='assignee'
设置ATTRIBUTE_NAME="ASSIGNED_GROUP"
设置ATTRIBUTE_VALUE='group_name'。
命令3
attr_utils.assign_attribute('assignee','attribute_name','attribute_value)
'assignee':属性组名称。这必须是一个属性组。
'attribute_name':属性名称
'attribute_value':指定属性的值
这个例程将分配值的属性给'assignee'。当受托人组作为一个属性组不存在,或是attribute_name是保留字段,将返回错误信息。
这个例程首选将'assignee'和'attribute_name'值转化成大写,然后再将有下面一列值的记录插入ATTRIBUTES表:
设置ASSIGNEE='assignee'
设置ATTRIBUTE_NAME='attribute_name'
设置ATTRIBUTE_VALUE='attribute_value'。
命令4
attr_utils.drop_group('group_name')
'group_name':将与其相关信息一起被删除的组或用户的名称。
这个例程将删除组或用户及其相关信息。如果'group_name'不存在,将返回错误信息。
这个例程首先将'group_name'转化成大写,然后删除ATTRIBUTES表中ASSIGNEE列的值与'group_name'相符的所有记录。另外在ATTRIBUTES表中满足下面两个条件的所有记录也将被删除:
a.ATTRIBUTE_NAME列的值是"ASSIGNED_GROUP"。
b.ATTRIBUTE_NAME列的值与'group_name'相符。
命令5
attr_utils.rescind_group('assignee','group_name')
'assignee':用户或受托人组,其含有被删除的group_name
'group_name':从受托人组中删除的组
这个例程将从'assignee'中删除指定的'group_name'。如果'group_name'或'assignee'不存在,将返回错误信息。
这个例程首选将'assignee'和'group_name'转化成大写,然后将ATTIBUTES表中与下面三个条件符合的所有记录删除:
a.ATTIBUTE_NAME列中的值是"ASSINGED_GROUP"。
b.ATTIBUTE_VALUE列中的值与'group_name'相符。
c.ASSIGNEE列中的值与'assignee'相符。
命令6
attr_utils.rescind_attribute('assignee','attribute_name')
'assignee':属性组名称。这必须是一个属性组。
'attribute_name':属性名称。
这个例程将从'assignee'中删除指定的'attribute_name'。如果attribute_name和assignee不存在,或是attribute_name为保留字段,将返回错误信息。
这个程序首先将'assignee'和'attribute_name'转化成大写,然后将ATTRIBUTES表中满足以下两个条件的所有记录删除:
a.ASSIGNEE列中的值与'assignee'相符。
b.ATTRIBUTE_NAME列中的值与'attribute_name'相符。
命令7
attr_utils.update_attribute('assignee','attribute_name','attribute_value')
'assignee':属性组名称。这必须是一个属性组。
'attribute_name':属性名称。
'attribute_value':指定属性的新值。
这个例程将为确定的'assignee'和'attribute_name'更新指定的'attribute_value'。如果attribute_name或assignee不存在,或是attribute_name为保留字段,将返回错误信息。
这个例程首先将'assignee'和'attribute_name'转化成大写,然后更新ATTRIBUTES表,对于满足以下两个条件的所有记录,将把ATTRIBUTE_VALUE设置成'attribute_value':
a.ASSIGNEE列中的值与'assignee'相符。
b.ATTRIBUTE_NAME列中的值与'attribute_name'相符。
利用前面的命令,就维护了一个ATTRIBUTES表。如命令1和2中所示,在首选实施例中,一些保留的ATTRIBUTE_NAME在ATTRIBUTES表中使用,用来确定系统中所用到的特殊信息。"APP_CODE"的ATTRIBUTE_NAME自动分配给属性组,用以确定与组相关的应用程序。"ASSIGNED_GROUP"的ATTRIBUTE_NAME是用来给属性组分配属性,给受托人组分配属性组和受托人组,还给用户分配属性组和受托人组。"ASSIGNEE_TYPE"的ATTRIBUTE_NAME用来确定一个组是属性组还是受托人组。这些例程检查ATTRIBUTE_NAME参数以确定它们不是保留字段,如果使用了保留的ATTRUBUTE_NAME将返回错误信息。
举例说明,在下面的表4中将显示图2中受托人组142的ATTRIBUTES表的一部分:
表4
        受托人  ATTRIBUTE_NAME      ATTRIBUTE_VALUE
  ASSIGNEE_GOUP_142  ASSIGNEE_TYPE      ASSIGNEE_GROUP
  ATTRIBUTE_GROUP_145  ASSIGNEE_TYPE      ATTRIBUTE_GROUP
  ATTRIBUTE_GROUP_145    APP_CODE            ABC
  ATTRIBUTE_GROUP_148  ASSIGNEE_TYPE      ATTRIBUTE_GROUP
  ATTRIBUTE_GROUP_148    APP_CODE            ABC
  ATTRIBUTE_GROUP_145   DATA_SCOPE             A
  ATTRIBUTE_GROUP_145   DATA_SCOPE             B
  ATTRIBUTE_GROUP_145   USER_LEVEL         RESTRICTED
  ATTRIBUTE_GROUP_148   DATA_SCOPE             B
  ATTRIBUTE_GROUP_148   DATA_SCOPE             C
  ATTRIBUTE_GROUP_148   USER_LEVEL         RESTRICTED
  ASSIGNEE_GOUP_142  ASSIGNED_GROUP    ATTRIBUTE_GROUP_142
  ASSIGNEE_GOUP_142  ASSIGNED_GROUP    ATTRIBUTE_GROUP_145
在本发明供选择的实施例中,前面所讨论过的,属性组不是限制于特定的应用程序,creat_group例程不一定要求有'app_code'输入,而APP_CODE属性将不保存在ATTRIBUTES表中。但是,利用附加表将APP_CODE直接分配给用户,对应用程序大规模的访问仍可以控制。如果用户没有分配到特定的APP_CODE,用户将完全不能获得相应的应用程序。
父子结构
为单一的受托人组分配多重属性组和/或受托人组导致可以对同一组或用户分配交迭、重复甚至冲突的值。例如,受托人组100,图2上端所示,包括图中的每个属性,因此,如前面表2所示,对于同一应用程序DEF,DATA_SCOPE属性包括不同的值B、C和ALL,而USER_LEVEL有不同的值REGULAR和RESTRICTED。由于这个原因,在首选的实施例中,建立属性分层结构,其中每个属性值都分配了“父值”。例如,DATA_SCOPE属性的值B分配了父值ALL。在实际中,这被称作用户分配的属性,同一属性和应用程序的父值和子值都存在,父值将被保存而子值被删除。此外,重复的值将被删除。
父子的分配被保存在ATTRIBUTE_LEVELS表中,其中包括三列:ATTRIBUTE_NAME、CHILD_VALUE和PARENT_VALUE。ATTRIBUTE_NAME是属性的名称(例如,DATA_SCOPE)。CHILD_VALUE是属性的实际值(例如,C)。对于PARENT_VALUE来说,实际值是它的子集(例如,ALL)。有种情况,即实际值是结构中级别最高的,例如ALL,所分配的父值就是NULL(空)。
ATTRIBUTE_LEVELS表由四个基本命令维护。范例命令是以用于Oracle数据库环境中的Oracle程序写出的。本领域的技术人员可以导出适于其它数据库环境的类似命令。注意在以下的描述中,单引号中是参数,双引号中是字符串。
命令1
attr_utils.add_attr_level('attribute_name','child_value','parent_value')
'attribute_name':属性名称
'child_value':对应指定'attribute_name'的子值
parent_value':对应指定'attribute_name',指定'child_value'的父值
这个例程将给一指定的指针加上新的属性级别。如果'child_value'在指定的'attribute_name'的权限内具有最高级别,则'parent_value'为"NULL"。如果父值为空或不存在,将返回错误信息。
这个例程首先将'attribute_name'转化成大写,然后将有下面一列值的记录插入ATTRIBUTE_LEVELS表:
设置ATTRIBUTE_NAME='attribute_name'
设置CHILD_VALUE='child_value'
设置PARENT_VALUE='parent_value'
命令2
attr_utils.update_attr_level('attribute_name','child_value','parent_value')
'attribute_name':属性名称
'child_value':对应指定'attribute_name'的子值
parent_value':对应指定'attribute_name',指定'child_value'的父值
这个例程将为指定的参数更新父值。如果'child_value'在指定的'attribute_name'的权限内具有最高级别,则'parent_value'为"NULL"。如果父值为空或不存在,或者attribute_name与child_value组合不存在,将返回错误信息。
这个例程首先将'attribute_name'转化成大写,然后更新ATTRIBUTE_LEVELS表,对于满足下面两个条件的所有记录,将PARENT_VALUE列的值设置为'parent_value':
a.ATTRIBUTE_NAME列的值与'attribute_name'相符。
b.CHILD_VALUE列的值与'child_name'相符。
命令3
attr_utils.delete_attr_levels('attribute_name','child_value')
'attribute_name':属性名称
'child_value':对应指定'attribute_name'的子值
这个例程将删除属性级别以及指定指针所有的子属性级别。如果组合不存在,将返回错误信息。
这个例程首先将'attribute_name'转化成大写,然后将ATTRIBUTE_LEVELS表中指定组合对'attribute_name'和'child_value'所派生出的所有记录都删除。举例说明,以下SQL语句可以用来完成头两步:
DELETE ATTRIBUTE LEVELS
WHERE(ATTRIBUTE_NAME,CHILD_VALUE)IN
(SELECT ATTRIBUTE_NAME,CHILD_VALUE
FROM ATTRIBUTE_LEVELS
START WITH PARENT_VALUE=P_CHILD_VALUE
AND ATTRIBUTE_NAME=UPPER(P_ATTRIBUTE_NAME)
CONNECI BY PARENT_VALUE=PRIOR CHILE_VALUE
AND ATTRIBUTE_NAME=PRIOR ATTRIBUTE_NAME).
这个例程将删除ATTRIBUTE_LEVELS表中满足以下两个条件的所有记录:
a.ATTRIBUTE_NAME列的值与'attribute_name'相符。
b.CHILD_VALUE列的值与'child_name'相符。
命令4
attr_utils.delete_all_levels('attribute_name')
'attibute_name':属性名称
这个例程将删除指定attribute_name的所有属性级别。如果attribute_name不存在,将返回错误信息。
这个例程首先将'attribute_name'转化成大写,然后将ATTRIBUTE_LEVELS表中ATTRIBUTE_NAME列值与'attribute_name'相符的所有记录删除。
利用前面的命令,ATTRIBUTE_LEVELS表被保存。举例说明,下面的表5显示了一个ATTRIBUTE_LEVELS表,是对应前面讨论过的范例属性:
表5
 ATTRIBUTE_NAME  CHILD_VALUE   RARENT_VALUE
   DATA_SCOPE       A        ALL
   DATA_SCOPE       B        ALL
   DATA_SCOPE       C        ALL
   DATA_SCOPE      ALL        NULL
   USER_LEVEL   RESTRICTED      REGULAR
   USER_LEVEL    REGULAR       ADMIN
   USER_LEVEL     ADMIN        NULL
根据表5,如果对于同一应用程序,拥有值ALL的DATA_SCOPE赋值给同一用户,对于拥有值A、B或C的DATA_SCOPE属性的赋值将被删除。同样,较低级USER_LEVEL值的赋值将被删除以利于最高级别值的赋值。
更进一步,如果属性值在ATTRIBUTES表中赋值了,而没有在ATTRIBUTE_LEVELS表中定义,则被认为在ATTRIBUTE_LEVELS表中它被定义为带有NULL父值,并且没有具有值的其它值作为它的父值。
考虑到较低级完整的一组赋值变量可以由较高级变量取代,进一步的简化就可以实现了。例如,DATA_SCOPE值A、B和C被指定了,系统可以返回值ALL。这种简化只能在所有的较低级值与较高级值表示同一事物时才可使用,因为较高级值可能比较低级值代表的要多一些。
用户属性系统的操作
结合以下对本发明的用户属性系统示范使用的讨论,将对图3作出参考说明。根据发明的首选实施例,对数据库环境中运行程序的访问由初始的图形用户界面(IGUI)控制。IGUI的例子包括互联网站点主页和局域网的初始页面。
但是,在获准访问应用程序之前,用户通常要登录到计算机系统中,方框201所示,如果登录完全正确的话,计算机系统将确认用户。方框204,IGUI检索用户可用的应用程序。在首选实施例中,IGUI通过读取ATTRIBUTES表做到这点的,箭头205包含了给用户的分组分配。如前面所讨论的,在首选实施例中,组分配包括属性组分配,而它又包含了可用程序的指定。在Oracle数据库系统中准备了“视图(view)”,它优于搜索整个ATTRIBUTES表,而表又可能相当庞大,它保存有频繁使用的搜索结果(例如,特殊用户的属性),而且很有可能被反复使用。在可选择的实例中,属性不是限制于特定的应用程序,特殊用户可用的应用程序可以在分离的表中存储和检索。
在箭头205,IGUI也将访问合法程序的APPS表,其包含的APP_CODE列告知IGUI在方框207中显示给用户哪些字符串,此方框中IGUI显示给用户可用的应用程序。方框210中,用户选择其中一个可用的应用程序。方框213中,IGUI读取ATTRIBUTES表,在箭头214,检索对应所选程序的用户属性。在Oracle数据库系统中,视图可以再一次用于检索属性。另外,IGUI可以访问ATTRIBUTE_LEVELS表来删除属性个数。
在箭头215,IGUI将相关的属性传给应用程序,而在方框216中,应用程序,按程序执行属性运行。如果用户试图超越指定的限制,可能会显示错误或警告信息。
在可选择的实例中,本领域的技术人员可以理解可以直接检索属性,不需要IGUI的辅助,并执行属性。
视图
如前面所讨论的,Oracle视图在本发明中用于检索和组织来自表的记录。以下是十二个视图的列表,它们在本发明的执行中有用。这里提供了每个视图的解释和一个SQL范例。
视图1
V_ATTRIBUTE_APP_CODES
这个视图将返回,用户属性系统中安装的所有不同的应用程序代码的列表。这个视图对记录执行一条含有DISTINCT子句的SELECT,记录中的ATTRIBUTE_NAME是'APP_CODE'保留的ATTRIBUTE_NAME。
SQL范例:
CREATE OR REPLACE VIEW V_ATTRIBUTE_APP_CODES AS
SELECT DISTINCT ASSIGNEE,
ATTRIBUTE_VALUE_APP_CODE
FROM ATTRIBUTES
WHERE ATTRIBUTE_NAME='APP_CODE'
视图2
V_ATTRIBUTE_GROUPS_ATTR
这个视图将返回所有不同的属性组列表。这个视图对记录执行一条含有DISTINCT子句的SELECT,记录中的ATTRIBUTE_NAME是'ASSIGNEE_TYPE'保留的ATTRIBUTE_NAME,而ATTRIBUTE_VALUE是'ATTRIBUTE_GROUP'。
SQL范例:
CREATE OR REPLACE VIEW V_ATTRIBUTE_GROUPS_ATTR
AS SELECT DISTICT ASSIGNEE GROUP_NAME
FROM ATTRIBUTES
WHERE ATTRIBUTE_NAME='ASSIGNEE_TYPE'
AND ATTRIBUTE_VALUE='ATTRIBUTE_GROUP';
视图3
V_ATTRIBUTE_GROUPS_ASSIGN
这个视图将返回所有不同的受托人组列表。这个视图对记录执行一条含有DISTINCT子句的SELECT,记录中的ATTRIBUTE_NAME是'ASSIGNBE_TYPE'保留的ATTRIBUTE_NAME,而ATTRIBUTE_VALUE是'ATTRIBUTE_GROUP'。
SQL范例:
CREATE OR REPLACE VIEW
V_ATTRIBUTE_GROUPS_ASSIGN AS
SELECT DISTINCT ASSIGNEE GROUP_NAME
FROM ATTRIBUTES
WHERE ATTRIBUTB_NAME='ASSIGNEB_TYPE'
AND ATTRIBUTE_VALUE='ASSIGNEE_GROUP';
视图4
V_ATTRIBUTE_USERS
这个视图将返回所有不同的属性用户列表。这个视图对记录执行一条含有DISTINCT子句的SELECT,记录中的ASSIGNEE等于在Oracle数据程序库表ALL_USERS中找到的USER_NAME。
SQL范例:
CREATE OR REPLACE VIEW V_ATTRIBUTE_USERS AS
SELECT DISTINCT ASSIGNBE USERID
FROM ATTRIBUTES,
ALL_USERS
WHERE ASSIGNBE=USBRNAME;
视图5
V_ATTRIBUTB_GROUPS_ALL
这个视图将返回系统中所有不同的组列表。这包括属性组和受托人组。这个视图对记录执行一条含有DISTINCT子句的SELECT,记录中的ASSIGNEE不是属性用户。
SQL范例:
CREATE OR REPLACE VIEW V_ATTRIBUTE_GROUPS_ALL AS
SELECT DISTINCT ASSIGNBE GROUP_NAME
FROM ATTRIBUTES,
V_ATTRIBUTE_USERS
WHERE ASSIGNBE=USBRID(+)
AND USERID IS NULL;
视图6
V_USER_GROUPS
这个视图将返回分配给当前连接到Oracle用户的所有组的列表。这个结果包括直接分配给用户的组和间接分配给用户的组。进一步说,就是组分配给ASSIGNEE GROUPS,而ASSIGNEE GOUPS又分配给了用户。这个视图执行使用CONNECT BY子句的系统树型查询。
SQL范例:
CREATE OR REPLACE VIEW V_USER_GROUPS AS
SELECT ATTRIBUTE_NAME,
ATTRIBUTE_VALUE
FROM ATTRIBUTES
WHERE ATTRIBUTE_NAME!='ASSIGNEE_TYPE'
START WITH ASSIGNEE=USER
CONNECT BY ASSIGNEE=PRIOR ATTRIBUTE_VALUE
AND ATTRIBUTE_NAME='ASSIGNED_GROUP';
视图7
V_USER_ATTR_APPS
这个视图返回一列表,列表中是分配给当前连接到Oracle用户的所有属性,及相应的APP_CODE。这个视图将把分配给用户的组(V_USER_GROUP)列表,ATTRIBUTES表,和带有相应APP_CODE变量(V_ATTRIBUTE_APP_CODES)的ATTRIBUTE_GROUPS列表结合起来。
SQL范例:
CREATE OR REPLACE VIEW V_USER_ATTR_APPS AS
SELECT ATTR.ATTRIBUTE_NAME,
ATTR.ATTRIBUTE_VALUE,
APPS.APP_CODE
FROM V_USER_GROUPS GROUPS,
ATTRIBUTES ATTR,
V_ATTRIBUTE_APP_CODES APPS
WHERE GROUPS.ATTRIBUTE_VALUE=ATTR.ASSIGNEE
AND ATTR.ASSIGNEE=APPS.ASSIGNEE
AND ATTR.ATTRIBUTE_NAME NOT IN
('ASSIGNED_GROUP','APP_CODE','ASSIGNEE_TYPE');
视图8
V_USER_ATTR_HIGHEST_VALUES
这个视图将返回对于相应的ATTRIBUTE_NAME来说级别最高的ATTRIBUTE_VALUE列表。这个视图可以包含重复的条目,这样在后面的讨论中,V_USER_ATTRIBUTES视图可以检索这些不同值的列表。这个视图将会为每个分配给当前用户的属性,把APP_CODE、ATTRIBUTE_NAME    和    ATTRIBUTE_VALUE    传递到ATTR_UTILS.HIGHEST_VALUE函数中。函数与程序相同,只是它可以作为查询的一部分执行,并返回一个值。
这里,函数返回当前分配给用户的最高级父值。在此视图SQL范例之后是函数描述。
SQL范例:
CREATE OR REPLACE VIEW
V_USER_ATTR_HIGHEST_VALUES AS
SELECT APP_CODE,
ATTRIBUTE_NAME,
SUBSTR(ATTR_UTILS.HIGHEST_VALUE(APP_CODE,
ARRTIBUTE_NAME,ATTRIBUTE_VALUE),1,30)
ATTRIBUTE_VALUE
FROM V_USER_ATTR_APPS;
ATTR_UTILS.HIGHEST_VALUE函数要求三个输入:APP_CODE,ATTRIBUTE_NAME和ATTRIBUTE_VALUE。函数要先载入内部属性值表,此表由为给定用户分配的所有属性值组成,APP_CODE和ATTRIBUTE_NAME。函数可以利用一现成的视图(即V_USER_ATTR_VALUE_LEVELS)完成这一工作。然后函数将使用当前的属性值,并找到这一值的所有父记录。函数将使用如下的SQL查询:
SELECT PARENT_VALUE
FROM ATTRIBUTE_LEVELS
WHERE ATTRIBUTE_NAME=P_ATTRIBUTE_NAME
START WITH CHILD_VALUE=P_ATTRIBUTE_VALUE
CONNECT BY CHILD_VALUE=PRIOR PARENT_VALUE
ORDER BY LEVEL;
然后这个函数将每个父值与属性值表中的记录进行比较,以确定其它分配了属性的值中是否有父值,即当前属性值的父级,祖父级,及其它。如此后,最高级的属性值被返回。否则当前属性值被返回。
视图9
V_ATTR_VALUE_LEVELS
这个视图将返回一列表,包括ATTIBUTE_NAME、相关的ATTRIBUTE_VALUE和变量相应的级别。例如,最高级ATTIBUTE_VALUE将拥有值为1的ATTRIBUTE_LEVEL,而值的子级将拥有值2。这个视图执行使用CONNECT BY子句的系统树型查询。
SQL范例:
CREATE OR REPLACE VIEW V_ATTR_VALUE_LEVELS AS
SELECT ATTRIBUTE_NAME,
CHILD_VALUE ATTRIBUTE_VALUE,
LEVEL VALUE_LEVEL
FROM ATTRIBUTE_LEVELS
START WITH PARENT_VALUE IS NULL
CONNECT BY PARENT_VALUE=PRIOR CHILD_VALUE
AND ATTRIBUTE_NAME=PRIOR ATTRIBUTE_NAME;
视图10
V_USER_ATTR_VALUE_LEVELS
这个视图将返回所有分配给用户的属性及其相应级别的列表。这个视图将把分配给当前连接Oraele的用户属性的列表(V_USER_ATTR_APPS)和属性与其相应级别的列表(V_ATTR_VALUE_LEVELS)结合起来。
SQL范例:
CREATE OR REPLACE VIEW
V_USER_ATTR_VALUE_LEVELS
AS SELECT APP_CODE,
ATTR.ATTRIBUTE_NAME,
ATTR.ATTRIBUTE_VALUE,
NVL(VALUE_LEVEL,1)VALUE_LEVEL
FROM V_USER_ATTR_APPS ATTR,
V_ATTR_VALUE_LEVELS LVL
WHERE
ATTR.ATTRIBUTE_NAME=LVL.ATTRIBUTE_NAME(+)
AND
ATTR.ATTRIBUTE_VALUE=LVL.ATTRIBUTE_VALUE(+);
视图1l
V_USER_APP_CODES
这个视图将返回所有各别的分配给当前用户的APP_CODE列表。这个视图执行使用CONNECT BY子句的系统树型查询。
SQL范例:
CREATE OR REPLACE VIEW V_USER_APP_CODES AS
SELECT DISTINCT ATTR.ATTRIBUTE_VALUE APP_CODE
FROM(SELECT ATTRIBUTE_NAME,
ATTRIBUTE_VALUE
FROM ATTRIBUTES
START WITH ASSIGNEE=USER
CONNECT BY ASSIGNEE=PRIOR ATTRIBUTE_VALUE
AND ATTRIBUTE_NAME='ASSIGNED_GROUP')GROUPS,
ATTRIBUTES ATTR
WHERE GROUPS.ATTRIBUTE_VALUE=ATTR.ASSIGNEE
AND ATTR.ATTRIBUTE_NAME='APP_CODE';
视图12
V_USER_ATTRIBUTES
这个视图返回一列表,表中为所有分配给用户的属性,和只是相应ATTRIBUTE_NAME的最高级ATTRIBUTE_VALUE。这个视图在V_USER_ATTR_HIGHEST_VALUES(V_USER_ATTR_VALUE_LEVELS)上执行SELECT DISTINCT。
SQL范例:
CREATE OR REPLACE VIEW V_USER_ATTRIBUTES AS
SELECT DISTINCT
APP_CODE,
ATTRIBUTE_NAME,
ATTRIBUTE_VALUE
FROM V_USER_ATTR_HIGHEST_VALUES;
在Oracle环境中,为了确定将ATTRIBUTES表和ATTRIBUTE_LEVELS表中的数据正确存储,最好是只用Oracle程序执行所有对用户属性的存储。这是可以保证的,通过在用户属性系统内限制访问不同目标,如表、视图、程序和函数。只读权限应该给ATTRIBUTES表和ATTRIBUTE_LEVELS表,以及所有的视图。用于存储这些表的Oracle程序,其执行权限应该只给用户属性管理者。这样可以确定未被授权的用户不能操纵属性或属性级别。
本发明已经,参考了一些有说明性的范例和实例描述,但这些不能理解为是限制本发明的范围或是思想。在不背离所附权利要求中表述的发明范围的前提下,可以在实际应用中,由本领域的技术人员进行许多修改。

Claims (18)

1.在可以运行至少一个应用程序和保存有数据库的计算机系统中,每个应用程序至少有一个功能部件,一种定义用户对至少一个功能部件访问的方法包括以下步骤:
给所述用户分配至少一个属性;
将至少一个属性存储在数据库的第一个表中;
运行计算机系统中应用程序;
从第一个表中检索一个或多个所述至少一个分配给用户的属性;
施加检索到的属性,由此根据检索的属性定义用户对应用程序至少一个功能部件的访问。
2.权利要求1中所述的方法,其中一个或多个所述至少一个功能部件与访问数据的能力相关。
3.权利要求1中所述的方法,在运行步骤之前,包括以下步骤:
给每个所述至少一个属性的实际值分配父值,由此一个或多个父子关系被建立;和
将一个或多个父子值关系存储在数据库的第二个表中;
在所述施加步骤之前,该方法还包括以下附加步骤:
从第二个表中检索一个或多个父子值关系;
依据检索的父子值关系决定其中一些检索的属性是否可以被删除。
4.在可以运行至少一个应用程序和保存有数据库的计算机系统中,每个应用程序至少有一个功能部件,一种定义用户对至少一个功能部件访问的方法包括以下步骤:
给所述用户分配至少一个属性;
将所述至少一个属性存储在所述数据库的第一个表中;
在计算机系统中运行应用程序;
从数据库中第一个表中检索一个或多个所述至少一个属性分配给用户;
提供检索的属性用于运行应用程序;和
施加属性,由此根据检索的属性定义用户对应用程序所述至少一个功能部件的访问。
5.权利要求4中所述的方法,在运行步骤之前,还包括一附加步骤,根据分配给所述用户的至少一个属性,向用户提供运行一个或多个应用程序的选择。
6.权利要求4中所述的方法,其中一个或多个至少一个功能部件与访问数据的能力相关。
7.权利要求4中所述的方法,在运行步骤之前,包括以下附加步骤:
给每个所述至少一个属性的实际值分配父值;
将父子值关系存储在数据库的第二个表中;
在施加步骤之前,该方法还包括以下附加步骤:
从第二个表中检索父子值关系;
依据检索的父子值关系决定检索的属性是否可以被删除。
8.在可以运行至少一个应用程序和保存有数据库的计算机系统中,每个应用程序至少有一个功能部件,一种定义用户对所述至少一个功能部件访问的方法包括以下步骤:
给组分配至少一个属性;
将所述组分配给至少一个用户;
将组存储在数据库的一个表中;
在计算机系统中运行应用程序;
从数据表中检索分配给用户的组;和
施加属性,由此根据从表中检索分配给组的至少一个属性定义用户对应用程序至少一个功能部件的访问。
9.权利要求8中所述的方法,其中给所述组分配的至少一个的属性定义仅对所述应用程序的访问。
10.一种计算机系统包括:
运行应用程序的装置,该程序至少有一个功能部件;
维护数据库的装置;
给用户分配至少一个属性的装置;
在数据库的第一个表中存储至少一个属性的装置;
从所述第一个表中检索给用户分配的所述至少一个属性的装置;和
施加属性的装置,由此根据分配给用户的至少一个的属性定义用户对应用程序至少一个功能部件的访问。
11.权利要求10中所述的系统,其中一个或多个所述至少一个功能部件与访问数据的能力相关。
12.权利要求10中所述的系统进一步包括:
给每个所述至少一个属性的实际值分配父值的装置,由此一个或多个父子关系被建立;
在数据库第二个表中存储一个或多个父子值关系的装置;
在第二个表中检索一个或多个父子值关系的装置;
依据检索的父子值关系决定其中一些检索的属性是否可以被删除的装置。
13.一种计算机系统包括:
运行应用程序的装置,该程序至少有一个功能部件;
保存数据库的装置;
给用户分配至少一个属性的装置;
在数据库的第一个表中存储至少一个属性的装置;
从第一个表中检索给用户分配了至少一个属性的装置;
向应用程序提供检索的属性的装置;和
施加属性的装置,由此根据分配给用户的至少一个属性定义用户对应用程序至少一个功能部件的访问。
14.权利要求13中所述的系统,进一步包括根据分配给用户的至少一个属性,向用户提供运行一个或多个应用程序的选择的装置。
15.权利要求13中所述的系统,其中一个或多个至少一个功能部件与访问数据的能力相关。
16.权利要求13中所述的系统进一步包括:
给每个至少一个属性的实际值分配父值的装置;
在数据库第二个表中存储父子值关系的装置;
在第二个表中检索父子值关系的装置;
依据检索的父子值关系决定其中一些检索的属性是否可以被删除的装置。
17.计算机系统包括:
运行应用程序的装置,该程序至少有一个功能部件;
保存数据库的装置;
给组至少分配一个属性的装置;
给用户分配组的装置;
在数据库的第一个表中存储组的装置;
从数据表中检索给用户分配的组的装置;和
施加检索的属性的方法,由此根据从数据表中检索的至少分配给组的一个属性定义用户对应用程序至少一个功能部件的访问。
18.权利要求17中所述的系统,其中为组分配的所述至少一个属性定义仅对应用程序的访问。
CN998110868A 1998-07-17 1999-07-15 可选择性定义对应用程序功能部件访问的系统和方法 Expired - Lifetime CN1318163B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/118,621 1998-07-17
US09/118,621 US6430549B1 (en) 1998-07-17 1998-07-17 System and method for selectivety defining access to application features
PCT/US1999/016029 WO2000004435A1 (en) 1998-07-17 1999-07-15 System and method for selectively defining access to application features

Publications (2)

Publication Number Publication Date
CN1318163A true CN1318163A (zh) 2001-10-17
CN1318163B CN1318163B (zh) 2010-06-09

Family

ID=22379742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN998110868A Expired - Lifetime CN1318163B (zh) 1998-07-17 1999-07-15 可选择性定义对应用程序功能部件访问的系统和方法

Country Status (20)

Country Link
US (2) US6430549B1 (zh)
EP (1) EP1108238B1 (zh)
JP (1) JP4571746B2 (zh)
KR (3) KR100628426B1 (zh)
CN (1) CN1318163B (zh)
AT (1) ATE352071T1 (zh)
AU (1) AU757061B2 (zh)
BG (1) BG64962B1 (zh)
BR (1) BR9912119A (zh)
CA (1) CA2336987A1 (zh)
DE (1) DE69934894T2 (zh)
EA (1) EA003618B1 (zh)
ES (1) ES2280123T3 (zh)
HR (1) HRP20010029B1 (zh)
HU (1) HUP0301138A2 (zh)
IL (1) IL140906A0 (zh)
NZ (1) NZ509240A (zh)
PL (1) PL345904A1 (zh)
WO (1) WO2000004435A1 (zh)
YU (1) YU2701A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768319A (zh) * 2004-04-12 2006-05-03 微软公司 用于构建对象和实体的呈现的方法和装置
CN100349086C (zh) * 2003-10-31 2007-11-14 Sap股份公司 安全的用户专有应用程序版本

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430549B1 (en) * 1998-07-17 2002-08-06 Electronic Data Systems Corporation System and method for selectivety defining access to application features
US7908602B2 (en) 1999-06-30 2011-03-15 Blackboard Inc. Internet-based education support system, method and medium providing security attributes in modular, extensible components
US6988138B1 (en) * 1999-06-30 2006-01-17 Blackboard Inc. Internet-based education support system and methods
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
JP4718662B2 (ja) * 2000-03-24 2011-07-06 株式会社東芝 コンピュータシステム
US20030021417A1 (en) 2000-10-20 2003-01-30 Ognjen Vasic Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7362868B2 (en) 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
EP1350167A4 (en) * 2000-11-16 2007-10-24 Dlj Long Term Invest Corp SYSTEM AND METHOD FOR SAFETY AT THE APPLICATION LEVEL
GB2383147B (en) * 2001-12-13 2005-04-06 Inventec Corp Method for integrating multiple web servers based on individual client authorisation
US7020653B2 (en) * 2002-11-06 2006-03-28 Oracle International Corporation Techniques for supporting application-specific access controls with a separate server
JP2004302516A (ja) * 2003-03-28 2004-10-28 Ntt Docomo Inc 端末装置およびプログラム
US20040249674A1 (en) * 2003-05-06 2004-12-09 Eisenberg Floyd P. Personnel and process management system suitable for healthcare and other fields
EP1560139A1 (en) * 2004-01-30 2005-08-03 Jaffe Associates LLC Computer-based system and method of designating content for presentation to a target entity
US9407963B2 (en) * 2004-02-27 2016-08-02 Yahoo! Inc. Method and system for managing digital content including streaming media
US20060053035A1 (en) * 2004-09-09 2006-03-09 Eisenberg Floyd P Healthcare personnel management system
JP4643213B2 (ja) * 2004-09-29 2011-03-02 シスメックス株式会社 アプリケーションプログラムの使用制限方法、測定装置のユーザ認証システム、認証サーバ、クライアント装置、及びアプリケーションプログラム
US8099441B2 (en) 2004-09-30 2012-01-17 Millennium It (Usa) Inc. System and method for configurable trading system
US7668846B1 (en) 2005-08-05 2010-02-23 Google Inc. Data reconstruction from shared update log
US7567973B1 (en) * 2005-08-05 2009-07-28 Google Inc. Storing a sparse table using locality groups
US9942271B2 (en) * 2005-12-29 2018-04-10 Nextlabs, Inc. Information management system with two or more interactive enforcement points
US8621549B2 (en) 2005-12-29 2013-12-31 Nextlabs, Inc. Enforcing control policies in an information management system
US7877781B2 (en) 2005-12-29 2011-01-25 Nextlabs, Inc. Enforcing universal access control in an information management system
US8627490B2 (en) * 2005-12-29 2014-01-07 Nextlabs, Inc. Enforcing document control in an information management system
US7783686B2 (en) * 2006-06-16 2010-08-24 Microsoft Corporation Application program interface to manage media files
US8413110B2 (en) * 2007-04-25 2013-04-02 Kai C. Leung Automating applications in a multimedia framework
US8326211B1 (en) 2007-06-11 2012-12-04 Distance EDU Learning, Inc. Computer systems for capturing student performance
US9214090B2 (en) 2007-06-11 2015-12-15 Distance EDU Learning, Inc. Computer systems for capturing student performance
US20100017246A1 (en) * 2008-07-20 2010-01-21 Farrell Glenn H Software user interface for specification of project task dependencies and deadlines
US8484351B1 (en) 2008-10-08 2013-07-09 Google Inc. Associating application-specific methods with tables used for data storage
US9400879B2 (en) * 2008-11-05 2016-07-26 Xerox Corporation Method and system for providing authentication through aggregate analysis of behavioral and time patterns
US8255820B2 (en) 2009-06-09 2012-08-28 Skiff, Llc Electronic paper display device event tracking
WO2011122572A1 (ja) * 2010-03-31 2011-10-06 日本電気株式会社 グルーピング装置、コンピュータ読み取り可能な記録媒体、及びグルーピング方法
US20170171292A1 (en) * 2015-12-11 2017-06-15 Quixey, Inc. Generating Software Application Search Results Using Shared Application Connections
US10657239B2 (en) 2017-05-25 2020-05-19 Oracle International Corporation Limiting access to application features in cloud applications
WO2019178130A1 (en) * 2018-03-12 2019-09-19 Twilio Inc. Customizable cloud-based software platform
US11609974B2 (en) * 2020-08-10 2023-03-21 Walmart Apollo, Llc Methods and apparatus for automatic permission assignment

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2533495B2 (ja) 1986-07-25 1996-09-11 株式会社日立製作所 ワ−クスケジユ−リング方法及び装置
US5117353A (en) 1989-05-05 1992-05-26 Staff-Plus, Inc. System for use in a temporary help business
US5164897A (en) 1989-06-21 1992-11-17 Techpower, Inc. Automated method for selecting personnel matched to job criteria
US5459859A (en) 1991-06-18 1995-10-17 Mitsubishi Denki Kabushiki Kaisha Apparatus and system for providing information required for meeting with desired person while travelling
US5283731A (en) 1992-01-19 1994-02-01 Ec Corporation Computer-based classified ad system and method
GB9402935D0 (en) * 1994-02-16 1994-04-06 British Telecomm A method for controlling access to a database
US5416694A (en) 1994-02-28 1995-05-16 Hughes Training, Inc. Computer-based data integration and management process for workforce planning and occupational readjustment
US5592375A (en) 1994-03-11 1997-01-07 Eagleview, Inc. Computer-assisted system for interactively brokering goods or services between buyers and sellers
US5754850A (en) 1994-05-11 1998-05-19 Realselect, Inc. Real-estate method and apparatus for searching for homes in a search pool for exact and close matches according to primary and non-primary selection criteria
JP2912840B2 (ja) 1994-12-07 1999-06-28 富士通株式会社 ファイル管理システム
US5956715A (en) * 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
US5799304A (en) 1995-01-03 1998-08-25 Intel Corporation Information evaluation
US5671409A (en) 1995-02-14 1997-09-23 Fatseas; Ted Computer-aided interactive career search system
GB2301912A (en) 1995-06-09 1996-12-18 Ibm Security for computer system resources
US5734828A (en) 1995-08-30 1998-03-31 Intel Corporation System for accessing/delivering on-line/information services via individualized environments using streamlined application sharing host and client services
US5758324A (en) 1995-12-15 1998-05-26 Hartman; Richard L. Resume storage and retrieval system
US5778181A (en) 1996-03-08 1998-07-07 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
JPH09288609A (ja) * 1996-04-23 1997-11-04 Mitsubishi Electric Corp ファイルの安全管理方式
US5799285A (en) 1996-06-07 1998-08-25 Klingman; Edwin E. Secure system for electronic selling
SE506853C2 (sv) 1996-06-20 1998-02-16 Anonymity Prot In Sweden Ab Metod för databearbetning
US6131120A (en) * 1997-10-24 2000-10-10 Directory Logic, Inc. Enterprise network management directory containing network addresses of users and devices providing access lists to routers and servers
US6064656A (en) * 1997-10-31 2000-05-16 Sun Microsystems, Inc. Distributed system and method for controlling access control to network resources
US6085191A (en) * 1997-10-31 2000-07-04 Sun Microsystems, Inc. System and method for providing database access control in a secure distributed network
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
JPH11161536A (ja) * 1997-11-26 1999-06-18 Nec Inf Service Ltd 利用者制限装置およびその方法
JP3937548B2 (ja) * 1997-12-29 2007-06-27 カシオ計算機株式会社 データアクセス制御装置およびそのプログラム記録媒体
US6182142B1 (en) * 1998-07-10 2001-01-30 Encommerce, Inc. Distributed access management of information resources
US6430549B1 (en) * 1998-07-17 2002-08-06 Electronic Data Systems Corporation System and method for selectivety defining access to application features

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100349086C (zh) * 2003-10-31 2007-11-14 Sap股份公司 安全的用户专有应用程序版本
CN1768319A (zh) * 2004-04-12 2006-05-03 微软公司 用于构建对象和实体的呈现的方法和装置

Also Published As

Publication number Publication date
AU4997899A (en) 2000-02-07
KR100628426B1 (ko) 2006-09-28
BR9912119A (pt) 2001-10-16
KR100712569B1 (ko) 2007-05-02
ATE352071T1 (de) 2007-02-15
HRP20010029B1 (en) 2008-04-30
JP4571746B2 (ja) 2010-10-27
YU2701A (sh) 2002-12-10
AU757061B2 (en) 2003-01-30
CN1318163B (zh) 2010-06-09
EP1108238A1 (en) 2001-06-20
DE69934894T2 (de) 2007-11-15
US6578029B2 (en) 2003-06-10
KR20060089753A (ko) 2006-08-09
HRP20010029A2 (en) 2001-12-31
US20030050913A1 (en) 2003-03-13
BG64962B1 (bg) 2006-10-31
CA2336987A1 (en) 2000-01-27
KR100692330B1 (ko) 2007-03-14
BG105150A (en) 2001-07-31
KR20010071933A (ko) 2001-07-31
ES2280123T3 (es) 2007-09-01
JP2002520727A (ja) 2002-07-09
US6430549B1 (en) 2002-08-06
HUP0301138A2 (en) 2003-08-28
NZ509240A (en) 2002-11-26
EA200100145A1 (ru) 2001-06-25
HRP20010029A9 (en) 2008-03-31
DE69934894D1 (de) 2007-03-08
EP1108238B1 (en) 2007-01-17
KR20060076790A (ko) 2006-07-04
IL140906A0 (en) 2002-02-10
PL345904A1 (en) 2002-01-14
WO2000004435A1 (en) 2000-01-27
EA003618B1 (ru) 2003-08-28

Similar Documents

Publication Publication Date Title
CN1318163A (zh) 可选择性定义对应用程序功能部件访问的系统和方法
CN1097795C (zh) 结构式文件处理方法和装置
CN1299177C (zh) 数据管理装置、计算机系统及数据处理方法
CN1271547C (zh) 图像数据通信系统、服务器系统和控制方法
CN1292339C (zh) 打印处理设备及其方法
CN1501285A (zh) 排版系统、排版程序和排版方法
CN1881903A (zh) 文件版本管理装置及方法和程序
CN1601483A (zh) 一种基于脚本解释工具的自动化软件测试系统
CN1276575A (zh) 数据库存取系统
CN1794729A (zh) 数据配置管理方法及系统和装置以及程序
CN1190477A (zh) 修改现有数据库以反映相应对象模型变化的方法和装置
CN1112637C (zh) 信息获取代理系统和信息传送管理系统
CN1558348A (zh) 将基于模式的分级数据结构转换成平面数据结构的方法以及系统
CN1655145A (zh) 最优化行级别数据库安全的系统和方法
CN1331449A (zh) 用于将粘着法构成的文本或文档分段成词的字符串划分或区分的方法及相关系统
CN1645336A (zh) 基于模板的异构日志信息自动提取与分析方法
CN1172239C (zh) 执行移动对象的方法
CN1530856A (zh) 布局系统和布局程序以及布局方法
CN1862538A (zh) 一种数据配置系统及实现数据配置的方法
CN1681287A (zh) 数字照相机、像簿管理方法、像簿管理程序产品、以及像簿管理程序传送介质
CN1799048A (zh) 通用数据库模式
CN1889039A (zh) 基于xml实现通用浏览器工具条的方法
CN1809829A (zh) 数据库装置和作成方法、数据库检索装置及检索方法
CN1107264C (zh) 信息提供系统
CN1257471C (zh) 排版系统和排版方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: HEWLETT-PACKARAD DEVELOPMENT INC.

Free format text: FORMER OWNER: ELECTRONICS INFORMAITION SYSTEM CO., LTD.

Effective date: 20091225

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20091225

Address after: American Texas

Applicant after: Hewlett-Packard Development Corp.

Address before: American Texas

Applicant before: Electronic Information System Co Ltd

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20170118

Address after: American Texas

Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Patentee before: Hewlett Packard Development Co.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20100609