CN110888895B - 基于关联的访问控制委派 - Google Patents
基于关联的访问控制委派 Download PDFInfo
- Publication number
- CN110888895B CN110888895B CN201811451721.9A CN201811451721A CN110888895B CN 110888895 B CN110888895 B CN 110888895B CN 201811451721 A CN201811451721 A CN 201811451721A CN 110888895 B CN110888895 B CN 110888895B
- Authority
- CN
- China
- Prior art keywords
- data entity
- access control
- originating
- derived
- association
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 description 23
- 238000012986 modification Methods 0.000 description 23
- 230000015654 memory Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24547—Optimisations to support specific applications; Extensibility of optimisers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及用于访问控制委派的系统、软件以及计算机实现的方法。一个示例方法包括识别从始发实体创建派生实体。修改派生实体的定义以包括与所述始发实体的关联。基于始发访问控制定义创建派生访问控制定义。识别所述派生访问控制定义中的访问控制条件。通过修改列引用以包括对与始发实体的关联的引用,来创建修改的访问控制条件。接收用于所述派生实体的查询。通过在所述接收的查询中包括所述修改的访问控制条件,并展开到所述始发实体的关联来创建修改的查询。运行所述修改的查询,包括评估所述修改的访问控制条件以确定查询用户可访问的所述派生实体的记录。
Description
技术领域
本公开涉及用于基于关联的访问控制委派的计算机实现的方法、软件以及系统。
背景技术
与存储在数据库中的物理工件(诸如数据库表)相比,数据库视图可以提供更高级别的数据库中的数据的抽象。可以创建从一个或多个数据库表中选择字段的子集的视图。可以堆叠视图-例如,可以基于另一视图创建视图。可以为特定目的创建视图,诸如提供要在特定用户界面中呈现的数据。
发明内容
本公开涉及用于基于关联的访问控制委派的计算机实现的系统、软件以及方法。一个示例方法包括在数据库系统中识别从始发数据实体创建派生数据实体。始发数据实体与始发访问控制定义相关联。自动修改派生数据实体的数据定义以包括与始发实体的关联。基于始发访问控制定义创建派生访问控制定义。在派生访问控制定义中识别至少一个访问控制条件。访问控制条件可以包括至少一个列引用。通过修改每个列引用以包括对与始发数据实体的关联的引用,自动创建至少一个修改的访问控制条件。接收对派生数据实体的查询。该查询与特定用户相关联。通过在接收的查询中包括至少一个修改的访问控制条件,并在接收的查询中展开与始发数据实体的关联来自动创建修改的查询。运行修改的查询,包括评估至少一个修改的访问控制条件,以确定特定用户可访问的派生数据实体的记录。评估包括访问始发数据实体的数据。
虽然通常被描述为在有形介质上体现的处理和变换相应数据的计算机实现的软件,但是一些或所有方面可以是计算机实现的方法,或者进一步包括在用于执行该描述的功能的相应的系统或其他设备中。在附图和以下描述中阐述了本公开的这些和其他方面以及实施例的细节。根据说明书和附图以及权利要求,本公开的其他特征、目的以及优点将是显而易见的。
附图说明
图1是示出了用于基于关联的访问控制委派的示例系统的框图。
图2示出了用于数据访问控制的示例系统。
图3示出了用于基于现有实体创建派生实体的示例系统。
图4示出了用于基于关联的访问控制委派的示例系统。
图5示出了用于查询的运行时间修改以产生修改的查询的示例系统。
图6是用于基于关联的访问控制委派的示例方法的流程图。
具体实施方式
来自数据库的数据的检索可以相对于访问生成的结果集的用户进行访问控制。在数据库系统中可能发生其中实体(例如,表、视图)以使得期望隐式重用对底层实体的访问控制的方式彼此为基础的情况。例如,可以在现有实体上创建投影视图,以通过列掩蔽来减少所选列的数量或通过附加的选择谓词减少行。此类操作可能不需要新的访问控制方案。
典型的过程可以是将始发实体的访问控制复制到基于始发实体的派生实体。然而,由于手动复制访问控制逻辑,这种复制可能导致开发和维护的总成本增加。此外,对派生实体的某些更改可能是不允许的,或者可能导致问题,诸如影响作为始发实体中访问控制条件一部分的列的更改。
可以使用访问控制委派方法来实现较低的开发和维护总成本,同时保留定义和修改派生实体的灵活性。访问控制委派方法涉及在创建派生实体时自动创建对始发实体的隐式反向引用。使用反向引用,可以从派生实体访问始发实体的所有字段。因此,可以修改派生实体的访问控制定义,以便自动修改字段(例如,列)引用以使用自动创建的反向引用。当在运行时间应用访问控制定义时,可以使用反向引用而不是派生实体本身的列名来解析访问控制相关列。
该访问控制委派方法为派生实体的设计者提供了从始发实体移除或重命名列的灵活性,包括用于始发实体中的访问控制的字段,从而提供始发实体和派生实体的解耦,其可以降低维护成本。出于同样的原因,始发实体的访问控制的设计者可以灵活地使用始发实体中存在的任何字段用于访问控制目的。访问控制委派方法提供的灵活性不存在于将始发实体的访问控制简单地复制到派生实体的方法,因为如下所述,可能会发生应用错误、不一致或增加的维护和同步成本中的一个或多个。
图1是示出用于基于关联的访问控制委派的示例系统100的框图。具体地,所示系统100包括或者可通信地耦合到服务器102、终端用户客户端设备104、客户客户端设备105以及网络106。尽管被分别示出,但是在一些实现中可以由单个系统或服务器提供两个或更多个系统或者服务器的功能。在一些实现中,可以由多个系统或服务器提供一个所示出的系统或服务器的功能。
终端用户可以使用终端用户客户端设备104来使用客户端应用108,客户端应用108可以是包括在服务器102的应用层111中的服务器应用110的客户端版本。客户端应用108可以提交用户查询(临时存储为存储器114的应用层113中的用户查询112)到服务器102。服务器应用110可以将用户查询112提交给数据库/运行时间层116中的查询运行器115,以运行用户查询112。
用户查询112可以查询一个或多个数据库工件118(存储在存储器114中的数据库/运行时间层119中),诸如一个或多个数据库表120或数据库视图122。由用户查询112访问的一些或所有数据库工件118可以定义访问控制。可以配置访问控制,使得为某些用户返回某些数据库工件118的某些记录。例如,对给定站点的用户的查询可以通过访问控制自动返回特定于给定站点的记录,即使查询不是按站点直接过滤。可以存储访问控制元数据124,其代表已经为某些数据工件118(或者为某些更高级实体定义126,如下所述)定义的访问控制条件。访问控制运行时间128可以将访问控制元数据124应用于用户查询112以创建修改的查询130。查询运行器115可以最终运行修改的查询130,其结果被返回到客户端应用108。
在一些实现中,诸如客户端应用108的客户端应用访问虚拟地存储在应用层113中的更高级别的虚拟实体(例如,数据库视图)。可以使用实体定义126来定义虚拟实体(例如,视图定义)。物理数据库工件118可以对应于虚拟实体。查询运行器115可以在运行时间将引用虚拟实体的用户查询112转换为引用相应数据库工件118的修改查询130。
当部署系统时,软件提供商可以提供一些默认虚拟实体。软件提供商可以向客户(例如,管理员)提供修改应用132(具有相应的服务器端修改引擎133)以使客户能够创建自定义虚拟实体。例如,客户可以使用修改应用132来创建基于始发(例如,现有)实体136的派生实体134。始发实体136可以具有相应的访问控制定义138。如上所述,当创建派生实体134时,可以保留来自始发实体136的访问控制。
尽管可以通过复制始发访问控制定义138来创建派生访问控制定义140,但是可以使用更精细的访问控制委派方法,以提供用于定义派生实体的灵活性、减少访问控制维护成本以及确保正确的访问控制保存。例如,修改引擎133可以识别出已经从始发实体136创建了派生实体134,并且始发实体136具有关联的始发访问控制定义138。修改引擎133可以自动修改派生实体134的数据定义以包括到始发实体136的关联142。
修改引擎133可以基于始发访问控制定义138自动创建派生访问控制定义140。修改引擎133可以识别派生访问控制定义140中的访问控制条件中的每一个(例如,访问控制条件可以包括对派生实体134返回的列的至少一个列引用)。修改引擎133可以通过修改每个列引用以包括对始发实体136的关联142的引用,在派生访问控制定义140中来自动创建至少一个修改的访问控制条件。可以基于修改的访问控制条件,为派生实体134创建访问控制元数据124并存储。
当接收到用于派生实体134的用户查询112时,访问控制运行时间128可以通过将修改的访问控制条件插入到用户查询112中来自动创建修改的查询130。查询运行器115可以通过展开(例如,到连接语句)到始发实体136的关联142以创建进一步的修改的查询130。查询运行器115可以进一步修改经修改的查询130,通过解析对虚拟实体的引用到相应的数据库工件118,以创建最终查询。查询运行器115可以运行最终查询,其可以包括评估修改的访问控制条件以确定与用户查询相关联的用户可访问的派生实体134的记录。评估修改的访问控制条件可以包括通过展开的关联142访问始发实体136的数据,而不是访问派生实体140的数据。下面描述访问控制委派方法的进一步细节。
如在本公开中使用的,术语“计算机”旨在涵盖任何合适的处理设备。例如,尽管图1示出了单个服务器102、单个终端用户客户端设备104以及单个客户客户端设备105,但是可以使用单个独立计算设备、两个或更多个服务器102或多个客户端设备来实现系统100。实际上,服务器102和客户端设备104和105可以是任何计算机或处理设备,例如刀片服务器、通用个人计算机(PC)、Mac、工作站、基于UNIX的工作站或任何其他合适的装置。换句话说,本公开考虑了除通用计算机之外的计算机,以及没有传统操作系统的计算机。此外,服务器102和客户端设备104和105可以适于运行任何操作系统,包括Linux、UNIX、Windows、MacJavaTM、AndroidTM、iOS或任何其他合适的操作系统。根据一种实现方式,服务器102还可以包括或者可通信地与其耦合的电子邮件服务器、Web服务器、高速缓存服务器、流数据服务器和/或其他合适的服务器。
服务器102、终端用户客户端设备104以及客户客户端设备105分别使用接口150、152以及154来与连接到网络106的分布式环境(包括在系统100内)中的其他系统通信。通常,接口150、152以及154每个包括在软件和/或硬件中以合适的组合编码并且可操作以与网络106通信的逻辑。更具体地,接口150、152以及154每个都可以包括支持与通信相关联的一个或多个通信协议的软件,使得网络106或接口的硬件可操作以用于在所示出的系统100内部和外部传送物理信号。
服务器102包括一个或多个处理器156。每个处理器156可以是中央处理单元(CPU)、刀片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他合适的组件。通常,每个处理器156运行指令并操纵数据以执行服务器102的操作。具体地,例如,每个处理器156运行接收和响应来自终端用户客户端设备104的请求所需的功能。
无论具体实现如何,“软件”可以包括在有形介质(暂时的或非暂时的,视情况而定)上的计算机可读指令、固件、有线和/或编程硬件或其任意组合,可操作当运行时至少执行本文描述的过程和操作。实际上,每个软件组件可以用任何适当的计算机语言完全或部分地编写或描述,包括C、C++、JavaTM、Visual Basic、汇编程序、/>任何合适的4GL版本以及其他。虽然图1中所示的软件的部分是显示为通过各种对象、方法或其他过程实现各种特征和功能的各个模块,但是软件可以适当地包括多个子模块、第三方服务、组件、库等。相反,各种组件的特征和功能可以适当地组合成单个组件。
服务器102包括存储器114。在一些实现中,服务器102包括多个存储器。存储器114可以包括任何类型的存储器或数据库模块,并且可以采用易失性和/或非易失性存储器的形式,包括但不限于磁介质、光学介质、随机存取存储器(RAM)、只读存储器(ROM)、可移动介质或任何其他合适的本地或远程存储器组件。存储器114可以存储各种对象或数据,包括高速缓存、类、框架、应用、备份数据、业务对象、作业、网页、网页模板、数据库表、数据库查询、存储业务和/或动态信息的存储库,以及任何其他适当的信息,包括与服务器102的目的相关的任何参数、变量、算法、指令、规则、约束或对其的引用。
终端用户客户端设备104和客户客户端设备105每个通常可以是任何计算设备,其可操作以使用有线或无线连接经由网络106连接到服务器102或与服务器102通信。通常,终端用户客户端设备104和客户客户端设备105每个包括可操作以接收、发送、处理以及存储与图1的系统100相关联的任何适当数据的电子计算机设备。终端用户客户端设备104和客户客户端设备105每个可以分别包括一个或多个客户端应用,包括客户端应用108或修改应用132。客户端应用是允许终端用户客户端设备104或客户客户端设备105在相应客户端设备上请求和查看内容的任何类型的应用。在一些实现中,客户端应用可以使用在启动时接收的参数、元数据和其他信息来访问来自服务器102的特定数据集。在一些实例中,客户端应用可以是运行在企业服务器(未示出)上的一个或多个企业应用的代理或客户端版本。
客户端设备104和客户的客户端设备105分别包括处理器160或处理器162。终端用户客户端设备104或客户客户端设备105中包括的每个处理器160或162可以是中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他合适的组件。通常,终端用户客户端设备104或客户客户端设备105中包括的每个处理器160或162分别运行指令和操纵数据以执行终端用户客户端设备104或客户客户端设备105的操作。具体地,包括在终端用户客户端设备104或客户的客户端设备105中的每个处理器160或162运行向服务器102发送请求以及从服务器102接收和处理响应所需的功能。
终端用户客户端设备104和客户客户端设备105每个通常旨在包含任何客户端计算设备,诸如膝上型/笔记本计算机、无线数据端口、智能电话、个人数据助理(PDA)、平板计算设备、这些设备中的一个或多个处理器或任何其他合适的处理设备。例如,终端用户客户端设备104和/或客户客户端设备105可以包括计算机,该计算机包括输入设备,诸如小键盘、触摸屏或可以接受用户信息的其他设备,以及输出设备,其分别传送与服务器102或相应客户端设备本身的操作相关联的信息,包括数字数据、视觉信息或GUI 165或GUI 166。
为了任何合适的目的,GUI 112和166与系统100的至少一部分接口,包括分别生成客户端应用108或配置应用136的可视表示。特别地,GUI 112和/或GUI 166可用于查看和导航各种网页。通常,GUI 112和GUI 166向相应用户提供由系统提供或在系统内传送的业务数据的有效且用户友好的呈现。GUI 112和GUI 166每个可包括多个可定制的框架或视图,其具有由用户操作的交互式字段、下拉列表以及按钮。GUI 112和GUI 166每个考虑任何合适的图形用户界面,例如通用网络浏览器、智能引擎以及命令行界面(CLI)的组合,其处理信息并有效地将结果可视地呈现给用户。
分别包括在终端用户客户端设备104或客户客户端设备105中的存储器168和存储器170每个可以包括任何存储器或数据库模块,并且可以采用易失性或非易失性存储器的形式,包括但不限于磁性介质、光学介质、随机存取存储器(RAM)、只读存储器(ROM)、可移动介质或任何其他合适的本地或远程存储器组件。存储器168和存储器170每个可以存储各种对象或数据,包括用户选择、高速缓存、类、框架、应用、备份数据、业务对象、作业、网页、网页模板、数据库表、存储业务的存储库和/或动态信息,以及任何其他适当的信息,包括与相关联的客户端设备的目的相关联的任何参数、变量、算法、指令、规则、约束或对其的引用。
可以存在与系统100相关联或在系统100外部的任何数量的终端用户客户端设备104和/或客户的客户端设备105。例如,虽然所示系统100包括一个终端用户客户端设备104,系统100的替代实施方式可以包括可通信地耦合到服务器102和/或网络106的多个终端用户客户端设备104,或者适合于系统100的目的的任何其他数量。另外,还可以存在一个或多个系统100的所示部分外部的附加终端用户客户端设备104,其能够经由网络106与系统100交互。此外,术语“客户端”、“客户端设备”以及“用户”可以在不脱离本公开的范围的情况下适当地互换使用。此外,虽然可以以由单个用户使用的术语来描述终端用户客户端设备104和客户的客户端设备105,但是本公开考虑多用户可以使用一台计算机,或者一个用户可以使用多台计算机。
图2示出了用于数据访问控制的系统200的示例。数据服务组件202包括数据定义层204和访问定义层206,用于提供与存储在数据库208中的数据有关的服务。数据定义层204使得能够定义数据选择对象,其可以是比存储在数据库208中的低级数据库表(例如,分别为T1、T2、T3表210、212以及214)更高级别的对象。可以使用数据定义语言(DDL)来定义数据选择对象。访问定义层206提供用于定义对所定义的对象的访问控制的声明性方法。
已经在数据定义层204中定义了视图定义216。视图定义216定义了虚拟视图V218,其从T1 210和T2 212表中选择数据,并且使用内连接(例如,使用连接条件220)将T1210和T2 212选择的数据连接在一起。字段列表222指定虚拟视图V 218将包括字段A、B以及C(来自T1表210)以及字段F(来自T2表212)。
由于应用程序仅需要来自T1 210和T2 212表的A、B、C以及F字段而非其他字段,开发者可能已经定义了虚拟视图V 218。作为另一示例,系统提供商可能已在产品版本中提供虚拟视图V。例如,虚拟视图V可以包括销售订单和相关信息。与直接查询基础表的应用程序相比,虚拟视图V 218可以为应用程序提供简化的接口。视图定义216还包括关联224,其使得使用虚拟视图V 218的应用程序能够使用虚拟视图V 218导航到T3表214。应用程序不需要知道在虚拟视图V 218中包括两个表和关联。应用程序可以简单地知道它可以查询虚拟视图V 218并访问字段列表222中的字段和/或T3表214的字段(使用关联224)。
一旦定义了虚拟视图V 218,就可以存储视图定义216(例如,在数据服务组件202中,例如,作为文本文件)。在定义了虚拟视图V 218之后,可以在数据库208中存储物理视图工件226,其包括在字段列表222中列出的A、B、C以及F字段。如下所述,当应用程序查询虚拟视图V 218时,运行时间组件227可以从物理视图工件226检索数据。在一些实现中,关联224不会导致在数据库208中生成工件。关联224可以被视为在运行时间展开到外部连接(例如,使用连接条件228)的虚拟连接模板。
已经在访问控制层204中定义了访问控制定义230,以指定虚拟视图V 218的访问条件。访问控制定义230导致如果第一访问控制条件232和第二访问控制定义234两者都满足,则允许访问虚拟视图V 218中的数据。第一访问控制条件232指定字段B与“条件1”条件的匹配。第二访问控制条件234指定来自关联224的字段H与“条件2”条件的匹配。
条件1和条件2条件可以是从当前登录的用户派生数据。可以定义访问控制定义230,使得当不同的用户运行相同的应用时,由于不同的用户可以访问不同的信息集,所以可以生成不同的结果集。例如,第一用户可以与“工厂1”站点相关联,第二用户可以与“工厂2”站点相关联。可以定义第一访问控制条件232以限制对与与当前用户相关联的工厂号相关联的数据的访问。访问控制定义230可以由数据服务组件202存储为元数据,以供运行时间组件227使用。
运行时间组件227可以将所接收的查询242变换为可运行的查询244。例如,所接收的查询242从虚拟视图V 218请求字段A和字段I(例如,经由关联224)。可运行的查询244包括与接收到的查询242中包括的字段列表相同的字段列表246。如工件名称248所指示的,可运行查询244现在从与虚拟视图218相关联的物理视图工件226中选择数据,而不是虚拟视图V218。运行时间组件240已将外连接250添加到可运行查询,以将关联224展开到关联目标(例如,T3表214)。
运行时间组件240的访问控制运行层可以将访问控制定义230应用于所接收的查询242。可以自动应用访问控制定义230,而无需提交了所接收的查询242的应用程序的请求或知识。可以用数据库不可知的语言编写访问控制定义230。当将访问控制定义230应用于所接收的查询242时,访问控制运行层可以将访问控制定义230翻译成特定于将在其上运行可运行查询的数据库208的指令。
通过在where子句252中包括与第一访问控制条件232和第二访问控制条件234相对应的条件,将访问控制定义230应用于所接收的查询242。在where子句252中,对虚拟视图V 218的引用已经被对物理视图工件226(例如,V')的引用替换。在where子句252中,对关联224(例如,_T3)的引用已经被关联目标T3替换。当运行where子句252时仅检索适用于当前用户的行。
图3示出了用于基于现有实体创建派生实体的示例系统300。修改引擎302使得应用系统的客户(例如,开发者、管理员)能够基于现有实体创建派生实体。派生实体可以利用现有实体(可以称为始发实体)作为数据选择基础。例如,某个业务或应用上下文可能不需要现有视图的某些字段,并且客户可能希望创建仅包括所需字段或关联的派生视图。作为另一示例,客户可能希望在派生视图中重命名一个或多个字段以匹配在客户的业务上下文中使用的命名法(例如,客户可能想要将名为“工厂”的字段更改为具有名称“站点”)。仅包含所需字段的派生视图可称为投影视图。作为另一示例,客户可以将计算功能应用于一个或多个字段以将数据转换为另一表示(例如,客户可能想要将位置代码字段从ISO(国际标准化组织)格式更改为UN/LOCODE(联合国贸易和运输地点代码))。
作为特定示例,现有视图可以是由应用系统提供的销售订单视图。客户可能希望创建基于销售订单的用户接口,该用户接口仅使用现有销售订单视图提供的某些销售订单信息。客户可以基于现有视图创建包括所需的销售订单字段并排除不需要的销售订单字段的派生视图。
在图3的示例中,并且如注释304所示,客户306希望基于现有的虚拟视图V 218(图2)创建派生视图,使得派生视图仅包括字段A和F(例如,客户306不想要派生视图中的字段B、C以及关联_T3)。客户306可以例如使用修改引擎302创建派生视图定义308,其定义从虚拟视图V 218中选择数据的虚拟视图V*310(例如,选择字段列表312中指示的字段A和F)。
在已经定义虚拟视图V*310之后,可以在数据库315中创建代表虚拟视图V*310的物理视图工件V*'314。物理视图工件314包括字段A和F。物理视图工件314被配置为从物理视图工件V'226(例如,如图2,由V'工件名称316所示)检索字段A和F,其中物理视图工件V'226检索来自T1表210的字段A数据(例如,如T1表名318所示)和来自T2表212的字段F数据(例如,如T2表名320所示)。
当基于始发实体创建派生实体时,应该在派生实体中保留已为始发实体定义的安全访问。针对派生实体提交的查询不应显示比针对始发实体提交的相应查询更多或更少的记录。例如,对派生虚拟视图V*310运行查询的应用程序不应该看到会被为虚拟视图V 218定义的访问控制限制的记录。从针对派生实体提交的查询返回与针对始发实体提交的查询的不同记录可能是意外的、错误的并且可能导致其他问题,包括法律问题。
在派生实体中定义访问控制的一种方法是将访问控制条件从用于始发实体的访问控制定义复制到派生实体。例如,通过将第一访问控制条件232和第二访问控制定义234从访问控制定义230插入访问控制定义322,可以为虚拟视图V*310部分地定义访问控制定义322,如where子句324所示。
然而,where子句324在语法上不正确,因为字段B引用326和关联_T3引用328引用不在虚拟视图V*310中的项目(例如,当定义虚拟视图V*时,未从虚拟视图V 218中选择字段B和关联_T3)。因此,where子句324不可运行(例如,如线划掉的330所示)。
因此,通过简单地复制来自始发实体的访问控制条件来自动生成对派生实体的访问控制在某些情况下可能不是可行的方法,诸如在派生实体已经移除了访问控制条件所基于的字段的情况。即使派生实体不移除始发实体中访问控制所基于的字段,也会在应用生命周期的后期发生问题。例如,系统提供商可能需要在始发实体中部署对访问控制的改变,以包括在派生实体中未选择的字段。如果派生实体的访问控制最初是从始发实体复制的,则派生实体的访问控制可能不正确,并且还可能需要更新。然而,如果更新的访问控制条件被简单地复制到派生实体,则出现如上所述相同的问题-例如,用于派生实体的访问控制可以引用未包括在派生实体中的字段。
对于在派生实体中保留访问控制的一种潜在的解决方案,修改引擎302可以在创建派生实体时防止从始发实体中移除或修改(例如,重命名、转换)在始发实体的访问控制中使用的字段。例如,如果应用开发者试图基于现有视图通过从现有视图中移除用于现有视图中的访问控制的一个或多个字段来创建派生视图,修改引擎302可以生成错误,指示某些字段无法被移除,因为访问控制的内部用途需要这些字段。
然而,该潜在解决方案还可能在系统的生命周期期间导致问题。例如,假设应用开发人员在第一个时间点创建了从现有视图中移除特定字段的派生视图,并在该第一个时间点未使用该字段对现有视图进行访问控制。派生视图可以继承始发视图的访问控制。系统提供者可以在晚于第一时间点的第二时间点,想要向用于始发视图的访问控制递送修复,该修复现在使用特定字段。如果将修复部署到部署了派生视图的系统,则会出现派生视图和派生视图的访问控制不包括特定字段的情况。然后,派生视图的访问控制将与始发视图的访问控制不一致,但是如果将访问控制条件从始发视图复制到派生视图,则再次出现如上所述的相同问题-例如,用于派生视图的访问控制可能引用未包含在派生视图中的字段。
作为潜在解决方案的另一示例,一旦定义了访问控制并将其部署到客户,修改引擎就可以冻结对实体的访问控制。然而,此潜在的解决方案无法递送调整访问控制的安全修复。因此,这种潜在的解决方案可能是不可接受的。如下所述,可接受的解决方案可以涉及使用自动插入的关联的访问控制委派。
图4示出了用于基于关联的访问控制委派的示例系统400。响应于修改引擎402确定视图定义406基于访问控制已经定义的现有虚拟视图V 410,正在定义虚拟视图V*408,修改引擎402可以自动地将关联语句404添加到视图定义406。关联语句404定义关联_V 412。关联语句404的连接条件414将虚拟视图V*408的关键字字段416链接到现有虚拟视图V 410的关键字字段。修改引擎402将用于关联_V 412的关联引用418自动添加到视图定义406的字段列表420。
关联_V 412可以被称为指向现有虚拟视图V 410的反向引用。关联语句404和关联引用可以以内部方式自动且隐式地添加到视图定义406,这样添加内容不会外部暴露给开发人员。在添加到视图定义406之后,关联_V 412可以由访问控制层422自动使用。
例如,访问控制层422可以通过将继承语句426应用于已经为现有虚拟视图V 410定义的现有访问控制定义428来自动创建用于派生虚拟视图V* 408的访问定义424。继承语句426指示修改引擎402用对_V关联412的引用430替换对现有访问控制定义428的副本中的“根”实体(可以是隐式的)的引用。
用对_V关联412的显式引用430替换访问控制条件中的隐式根引用可以导致访问控制条件中的字段引用被修改为包括对_V关联412的引用430的前缀,如现在包括在访问定义424中的前缀432所示。添加_V关联412前缀导致将访问控制条件中的每个字段引用从派生虚拟视图V*408移位到_V关联412(例如,访问控制条件中不合格的字段引用否则将解析为派生虚拟视图V*408,但是如果明确地加前缀,则现在解析为_V关联412)。
将访问控制条件中的所有字段引用移位到_V关联412意味着所有访问控制条件在语法上是正确的,即使它们引用在派生虚拟视图V*408中不再存在的或语义修改的字段,因为包括在访问控制条件中的字段将存在于现有虚拟视图V 410中(例如,因为最初生成访问控制条件以与现有视图一起工作)。由继承语句426产生的改变可以自动应用,而不需要应用开发人员的知识或接触。
图5示出了用于运行时间修改查询502以产生修改的查询504的示例系统500。查询502可以是从派生虚拟视图V*408中选择某些字段的应用查询。运行时间引擎506可以使用到V*'物理视图工件314的V*'引用510替换V*查询502中的引用508。运行时间引擎506可以通过向修改的查询504添加外连接语句510来展开关联_V 412。外连接语句510包括对应于视图定义406中的连接条件414的连接条件512。
在连接条件414中,运行时间引擎506已经使用现在包括在连接条件512中的对物理视图工件226的V'引用替换了对虚拟视图V 218的V引用。运行时间引擎506使用现在在连接条件512中的对物理视图工件314的V*'引用替换连接条件414中的_V引用。运行时间引擎506已将外连接语句514添加到修改的查询504以处理_T3关联224,其嵌套在虚拟视图V*408所基于的_V虚拟视图V 218中。已将where子句516添加到修改的查询504以考虑访问控制定义424。
派生实体可以用作另一派生实体的始发实体。例如,如上所述,应用系统可以提供默认销售订单实体(例如,默认销售订单视图或表)。第三方软件提供商可以基于默认销售订单实体创建并提供第一派生销售订单视图,作为简化销售订单视图。特定客户可以使用第一派生销售订单视图,但可能希望创建自定义销售订单用户界面,并且可能不需要第一派生销售订单视图中的所有字段,因此可以基于第一派生销售订单视图创建第二派生销售订单视图。
修改引擎可以执行两次访问控制委派方法,首先在第一派生销售订单视图中添加对默认销售订单实体的第一反向引用,然后在第二派生销售订单视图中添加对第一派生销售订单视图的第二反向引用。运行时间引擎可以修改接收的查询,以将相应的前缀添加到与第一派生销售订单视图或第二派生销售订单视图关联的访问控制定义中包含的列。在添加了前缀的中间查询中,特定列引用可以有两个前缀,一个用于第一派生销售订单视图,另一个用于第二派生销售订单视图。解析前缀后,每个列引用最终可以解析为默认的销售订单视图。
在上面的示例中,派生视图包括与派生视图所基于的始发实体相同的关键字。访问控制委派方法可以在其他情况下工作,诸如当派生实体包括始发实体的一些但不是全部关键字列时。访问控制委派方法可以包括对包括在派生实体中的始发实体关键字信息的子集使用半连接语句(而不是外连接语句)。
图6是用于基于关联的访问控制委派的示例方法600的流程图。应当理解,方法600和相关方法可以例如通过任何合适的系统、环境、软件以及硬件或者系统、环境、软件以及硬件的组合来适当地执行。例如,客户端、服务器或其他计算设备中的一个或多个可用于运行方法600和相关方法,并从客户端、服务器或其他计算设备的存储器获得任何数据。在一些实现中,方法600和相关方法由以上关于图1描述的系统100的一个或多个组件运行。例如,方法600和相关方法可以由图1的服务器102运行。
在602处,在数据库系统中识别从始发数据实体创建派生数据实体。始发数据实体与始发访问控制定义相关联。例如,始发实体可以是数据库表或数据库视图。派生数据实体可以是数据库视图。
对于一些或所有派生数据实体,始发数据实体中的至少一列不同于派生数据实体中包括的列。对于一些或所有派生数据实体,始发实体中的至少一列不包括在派生数据实体中。对于一些或所有派生数据实体,派生数据实体中的至少一列是始发数据实体中的对应列的修改版本。
在604处,自动修改派生实体的数据定义以包括与始发实体的关联。例如,修改引擎或运行时间引擎可以自动将关联添加到派生实体的数据定义。作为另一个示例,管理员或开发者可以添加关联。
在606处,基于始发访问控制定义来创建派生访问控制定义。如上所述,通过应用继承语句,可以基于始发访问控制定义自动创建派生访问控制条件。作为另一示例,管理员或开发者可以手动创建派生访问控制条件的至少一部分。
在608处,在派生访问控制定义中识别至少一个访问控制条件。每个访问控制条件可以包括至少一个列引用。
在610处,通过修改每个列引用以包括对与始发实体的关联的引用来自动创建至少一个修改的访问控制条件。优选地,如上所述,修改所有列引用以包括对关联的引用,以支持生命周期改变。然而,在一些实现中,可以确定修改一些但不是所有列引用。例如,不符合派生实体的意图或被认为不太可能受到对始发访问控制条件的更改的影响的、与访问控制条件相关联的列,可以不被修改。
在612处,接收对派生数据实体的查询。该查询与特定用户相关联。
在614处,通过在接收的查询中包括至少一个修改的访问控制条件并在接收的查询中展开与始发实体的关联来自动创建修改的查询。
在616处,运行修改的查询,包括评估至少一个修改的访问控制条件以确定特定用户可访问的派生实体的记录。评估包括访问始发实体的数据。
前面的图和随附的描述示出了示例过程和计算机可实现的技术。但是系统100(或其软件或其他组件)考虑使用、实现或运行用于执行这些和其他任务的任何合适的技术。应当理解,这些过程仅用于说明目的,并且所描述的或类似的技术可以在任何适当的时间执行,包括同时、单独或组合。另外,这些过程中的许多操作可以同时、并行和/或以不同于所示的顺序发生。此外,只要方法保持适当,系统100可以使用具有附加操作、更少操作和/或不同操作的过程。
换句话说,尽管已经根据某些实施例和通常相关联的方法描述了本公开,但是这些实施例和方法的改变和置换对于本领域技术人员而言将是显而易见的。因此,示例实施例的以上描述不限定或约束本公开。在不脱离本公开的精神和范围的情况下,其他改变、替换以及变更也是可能的。
Claims (19)
1.一种计算机实现的方法,包括:
在数据库系统中识别从始发数据实体创建派生数据实体,所述始发数据实体与始发访问控制定义相关联;
自动修改所述派生数据实体的数据定义以自动添加定义与所述始发数据实体的关联的关联语句,所述关联指代指向所述始发数据实体的反向引用;
通过复制所述始发访问控制定义自动创建派生访问控制定义;
识别所述派生访问控制定义中的至少一个访问控制条件,其中,每个访问控制条件包括至少一个列引用;
通过修改每个列引用以包括对与所述始发数据实体的关联的引用,来自动创建至少一个修改的访问控制条件,其中,所述列引用被自动修改为使用自动创建的反向引用;
接收对所述派生数据实体的查询,所述查询与特定用户相关联;
通过在所接收的查询中包括所述至少一个修改的访问控制条件并在所接收的查询中展开与所述始发数据实体的关联,自动创建修改的查询,其中,展开所述关联包括在所接收的查询中包括将所述派生数据实体链接到所述始发数据实体的连接语句以及处理嵌套在所述派生数据实体所基于的始发数据实体的关联中的关联的连接语句;以及
运行所述修改的查询,包括评估所述至少一个修改的访问控制条件,以确定所述特定用户可访问的所述派生数据实体的记录,其中,所述评估包括访问所述始发数据实体的数据。
2.如权利要求1所述的方法,其中,所述派生数据实体是数据库视图。
3.如权利要求1所述的方法,其中,所述始发数据实体是数据库表。
4.如权利要求1所述的方法,其中,所述始发数据实体是数据库视图。
5.如权利要求1所述的方法,其中,所述始发数据实体中的至少一列与所述派生数据实体中包括的列不同。
6.如权利要求5所述的方法,其中,所述始发数据实体中的至少一列不包括在所述派生数据实体中。
7.如权利要求5所述的方法,其中,所述派生数据实体中的至少一列是所述始发数据实体中的对应列的修改版本。
8.一种用于数据访问控制的系统,包括:
一个或多个计算机;以及
计算机可读介质,具有存储在其上的指令,耦合到所述一个或多个计算机,当所述指令由所述一个或多个计算机运行时,使得所述一个或多个计算机执行包括以下操作的操作:
在数据库系统中识别从始发数据实体创建派生数据实体,所述始发数据实体与始发访问控制定义相关联;
自动修改所述派生数据实体的数据定义以自动添加定义与所述始发数据实体的关联的关联语句,所述关联指代指向所述始发数据实体的反向引用;
通过复制所述始发访问控制定义自动创建派生访问控制定义;
识别所述派生访问控制定义中的至少一个访问控制条件,其中,每个访问控制条件包括至少一个列引用;
通过修改每个列引用以包括对与所述始发数据实体的关联的引用,来自动创建至少一个修改的访问控制条件,其中,所述列引用被自动修改为使用自动创建的反向引用;
接收对所述派生数据实体的查询,所述查询与特定用户相关联;
通过在所接收的查询中包括所述至少一个修改的访问控制条件并在所接收的查询中展开与所述始发数据实体的关联,自动创建修改的查询,其中,展开所述关联包括在所接收的查询中包括将所述派生数据实体链接到所述始发数据实体的连接语句以及处理嵌套在所述派生数据实体所基于的始发数据实体的关联中的关联的连接语句;以及
运行所述修改的查询,包括评估所述至少一个修改的访问控制条件,以确定所述特定用户可访问的所述派生数据实体的记录,其中,所述评估包括访问所述始发数据实体的数据。
9.如权利要求8所述的系统,其中,所述派生数据实体是数据库视图。
10.如权利要求8所述的系统,其中,所述始发数据实体是数据库表。
11.如权利要求8所述的系统,其中,所述始发数据实体是数据库视图。
12.如权利要求8所述的系统,其中,所述始发数据实体中的至少一列与所述派生数据实体中包括的列不同。
13.如权利要求12所述的系统,其中,所述始发数据实体中的至少一列不包括在所述派生数据实体中。
14.一种非暂时性存储介质,其上编码有计算机程序,所述计算机程序包括用于使得一个或多个处理器执行操作的非暂时性计算机可读指令,所述操作包括:
在数据库系统中识别从始发数据实体创建派生数据实体,所述始发数据实体与始发访问控制定义相关联;
自动修改所述派生数据实体的数据定义以自动添加定义与所述始发数据实体的关联的关联语句,所述关联指代指向所述始发数据实体的反向引用;
通过复制所述始发访问控制定义自动创建派生访问控制定义;
识别所述派生访问控制定义中的至少一个访问控制条件,其中,每个访问控制条件包括至少一个列引用;
通过修改每个列引用以包括对与所述始发数据实体的关联的引用,来自动创建至少一个修改的访问控制条件,其中,所述列引用被自动修改为使用自动创建的反向引用;
接收对所述派生数据实体的查询,所述查询与特定用户相关联;
通过在所接收的查询中包括所述至少一个修改的访问控制条件并在所接收的查询中展开与所述始发数据实体的关联,自动创建修改的查询,其中,展开所述关联包括在所接收的查询中包括将所述派生数据实体链接到所述始发数据实体的连接语句以及处理嵌套在所述派生数据实体所基于的始发数据实体的关联中的关联的连接语句;以及
运行所述修改的查询,包括评估所述至少一个修改的访问控制条件,以确定所述特定用户可访问的所述派生数据实体的记录,其中,所述评估包括访问所述始发数据实体的数据。
15.如权利要求14所述的非暂时性存储介质,其中,所述派生数据实体是数据库视图。
16.如权利要求14所述的非暂时性存储介质,其中,所述始发数据实体是数据库表。
17.如权利要求14所述的非暂时性存储介质,其中,所述始发数据实体是数据库视图。
18.如权利要求14所述的非暂时性存储介质,其中,所述始发数据实体中的至少一列与所述派生数据实体中包括的列不同。
19.如权利要求18所述的非暂时性存储介质,其中,所述始发数据实体中的至少一列不包括在所述派生数据实体中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/126,104 US10915649B2 (en) | 2018-09-10 | 2018-09-10 | Association-based access control delegation |
US16/126,104 | 2018-09-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888895A CN110888895A (zh) | 2020-03-17 |
CN110888895B true CN110888895B (zh) | 2023-10-27 |
Family
ID=64456830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811451721.9A Active CN110888895B (zh) | 2018-09-10 | 2018-11-30 | 基于关联的访问控制委派 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10915649B2 (zh) |
EP (1) | EP3620933B1 (zh) |
CN (1) | CN110888895B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052944A (zh) * | 2004-03-29 | 2007-10-10 | 微软公司 | 用于关系数据库中存储数据的细化访问控制的系统和方法 |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01162979A (ja) | 1987-12-19 | 1989-06-27 | Ricoh Co Ltd | データベース管理システムの機能拡張装置 |
US6367013B1 (en) | 1995-01-17 | 2002-04-02 | Eoriginal Inc. | System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents |
US6208993B1 (en) | 1996-07-26 | 2001-03-27 | Ori Software Development Ltd. | Method for organizing directories |
US5956404A (en) | 1996-09-30 | 1999-09-21 | Schneier; Bruce | Digital signature with auditing bits |
US5978475A (en) | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US6868406B1 (en) | 1999-10-18 | 2005-03-15 | Stamps.Com | Auditing method and system for an on-line value-bearing item printing system |
US6968456B1 (en) | 2000-08-08 | 2005-11-22 | Novell, Inc. | Method and system for providing a tamper-proof storage of an audit trail in a database |
US20020095405A1 (en) | 2001-01-18 | 2002-07-18 | Hitachi America, Ltd. | View definition with mask for cell-level data access control |
US6951013B1 (en) | 2002-03-01 | 2005-09-27 | Lozins Neal N | Method for facilitating development and testing of relational database application software |
CA2427209A1 (en) | 2003-04-30 | 2004-10-30 | Ibm Canada Limited - Ibm Canada Limitee | Optimization of queries on views defined by conditional expressions having mutually exclusive conditions |
US7409370B2 (en) | 2003-06-30 | 2008-08-05 | Intel Corporation | Secured and selective runtime auditing services using a trusted computing device |
US7565684B2 (en) | 2003-07-22 | 2009-07-21 | Sap Ag | Declarative configuration of enterprises services |
US7536673B2 (en) | 2003-07-22 | 2009-05-19 | Sap Ag | Application business object processing |
US20050108024A1 (en) | 2003-11-13 | 2005-05-19 | Fawcett John Jr. | Systems and methods for retrieving data |
US20050234909A1 (en) | 2004-04-15 | 2005-10-20 | International Business Machines Corporation | Method, computer program product, and data processing system for source verifiable audit logging |
US7937401B2 (en) | 2004-07-09 | 2011-05-03 | Microsoft Corporation | Multidimensional database query extension systems and methods |
US7836078B2 (en) | 2004-12-15 | 2010-11-16 | International Business Machines Corporation | Techniques for managing access to physical data via a data abstraction model |
US7707423B2 (en) | 2005-08-17 | 2010-04-27 | The Boeing Company | Method and system for maintaining digital signature integrity |
US7894602B2 (en) | 2006-03-31 | 2011-02-22 | Sap Ag | System and method for generating pseudo-random numbers |
ES2553341T3 (es) | 2006-07-14 | 2015-12-07 | Scytl Secure Electronic Voting, S.A. | Método y sistema para generar registros de auditoría inmutables |
US7685194B2 (en) | 2006-08-31 | 2010-03-23 | Microsoft Corporation | Fine-grained access control in a database by preventing information leakage and removing redundancy |
US8943332B2 (en) | 2006-10-31 | 2015-01-27 | Hewlett-Packard Development Company, L.P. | Audit-log integrity using redactable signatures |
JP5278309B2 (ja) | 2007-03-27 | 2013-09-04 | 富士通株式会社 | 監査プログラム、監査システムおよび監査方法 |
US7668860B2 (en) | 2007-04-02 | 2010-02-23 | Business Objects Software Ltd. | Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data |
US7716213B2 (en) | 2007-04-26 | 2010-05-11 | International Business Machines Corporation | Apparatus, system, and method for efficiently supporting generic SQL data manipulation statements |
US8010494B2 (en) | 2008-02-01 | 2011-08-30 | Oracle International Corporation | Methods to defend against tampering of audit records |
TWI366114B (en) | 2008-03-04 | 2012-06-11 | Ind Tech Res Inst | Record system and method based on one-way hash function |
US8230228B2 (en) | 2008-10-31 | 2012-07-24 | International Business Machines Corporation | Support of tamper detection for a log of records |
US8316240B2 (en) | 2009-02-20 | 2012-11-20 | International Business Machines Corporation | Securing computer log files |
US8010521B2 (en) | 2009-03-23 | 2011-08-30 | Sap Ag | Systems and methods for managing foreign key constraints |
US20100262444A1 (en) | 2009-04-14 | 2010-10-14 | Sap Ag | Risk analysis system and method |
US8375442B2 (en) | 2009-08-17 | 2013-02-12 | Fatskunk, Inc. | Auditing a device |
US8572124B2 (en) | 2010-03-02 | 2013-10-29 | International Business Machines Corporation | Simplified entity relationship model to access structure data |
US8578174B2 (en) | 2010-06-18 | 2013-11-05 | Palo Alto Research Center Incorporated | Event log authentication using secure components |
US8381285B2 (en) | 2010-06-25 | 2013-02-19 | Sap Ag | Systems and methods for generating constraints for use in access control |
US8990146B2 (en) | 2010-12-22 | 2015-03-24 | Sap Se | Systems and methods to provide server-side client based caching |
CN103416021B (zh) | 2011-03-16 | 2016-08-17 | 国际商业机器公司 | 用于实现数字签名审核的方法、系统和装置 |
US20130031565A1 (en) | 2011-07-28 | 2013-01-31 | Sap Ag | Managing consistent interfaces for a product design version hierarchy business object across heterogeneous systems |
US20130066893A1 (en) | 2011-09-13 | 2013-03-14 | Hans-Christian Humprecht | Protection of data privacy in an enterprise system |
US20130117313A1 (en) | 2011-11-08 | 2013-05-09 | Microsoft Corporation | Access control framework |
US9177171B2 (en) | 2012-03-11 | 2015-11-03 | International Business Machines Corporation | Access control for entity search |
US8763095B2 (en) | 2012-04-12 | 2014-06-24 | Sap Ag | Authorization sharing |
US9355159B2 (en) | 2012-07-25 | 2016-05-31 | Sap Se | Systems and methods for adaptive data visualization utilizing a quick filter pattern |
US8792638B2 (en) | 2012-11-28 | 2014-07-29 | Sap Ag | Method to verify that a user has made an external copy of a cryptographic key |
FR3007551A1 (fr) * | 2013-06-25 | 2014-12-26 | France Telecom | Procede et serveur de traitement d'une requete d'acces d'un terminal a une ressource informatique |
US20150142852A1 (en) | 2013-11-15 | 2015-05-21 | Anett Lippert | Declarative authorizations for sql data manipulation |
US9338013B2 (en) | 2013-12-30 | 2016-05-10 | Palantir Technologies Inc. | Verifiable redactable audit log |
US9672347B2 (en) | 2014-12-11 | 2017-06-06 | Sap Se | Integrity for security audit logs |
US20170371942A1 (en) | 2016-06-22 | 2017-12-28 | Sap Se | Migrating of user interfaces using an enhanced unified metadata repository |
-
2018
- 2018-09-10 US US16/126,104 patent/US10915649B2/en active Active
- 2018-11-23 EP EP18208023.4A patent/EP3620933B1/en active Active
- 2018-11-30 CN CN201811451721.9A patent/CN110888895B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052944A (zh) * | 2004-03-29 | 2007-10-10 | 微软公司 | 用于关系数据库中存储数据的细化访问控制的系统和方法 |
Non-Patent Citations (2)
Title |
---|
Access Control and Query Verification for Untrusted Database;Rohit Jain et al;《Proceedings of the 27th Annual IFIP WG 11.3 Conference on Data and Applications Security》;第211-225页 * |
基于受控实体的访问控制技术;杨喜敏 等;《华中科技大学学报(自然科学版)》;第35卷(第8期);第56-59页 * |
Also Published As
Publication number | Publication date |
---|---|
US10915649B2 (en) | 2021-02-09 |
EP3620933A1 (en) | 2020-03-11 |
US20200082107A1 (en) | 2020-03-12 |
EP3620933B1 (en) | 2023-05-10 |
CN110888895A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128996B2 (en) | Uniform data model and API for representation and processing of semantic data | |
US10671630B2 (en) | External access to database container artifacts | |
US10044522B1 (en) | Tree-oriented configuration management service | |
US9870203B2 (en) | Consumption layer for business entities | |
US8392464B2 (en) | Easily queriable software repositories | |
US9218137B2 (en) | System and method for providing data migration services | |
US20100049692A1 (en) | Apparatus and Method For Retrieving Information From An Application Functionality Table | |
US10083016B1 (en) | Procedurally specifying calculated database fields, and populating them | |
US9251222B2 (en) | Abstracted dynamic report definition generation for use within information technology infrastructure | |
US9053134B2 (en) | View variants in database schema mapping | |
US10943027B2 (en) | Determination and visualization of effective mask expressions | |
US20080263142A1 (en) | Meta Data Driven User Interface System and Method | |
US11829814B2 (en) | Resolving data location for queries in a multi-system instance landscape | |
US20230418808A1 (en) | Maintaining data separation for data consolidated from multiple data artifact instances | |
US20230418680A1 (en) | Selective landscape element grouping facilitating landscape element consolidation or content installation | |
US20080263018A1 (en) | Method and System for Mapping Business Objects to Relational Database Tables | |
EP4290393A1 (en) | Consolidation spaces providing access to multiple instances of application content | |
Chellappan et al. | MongoDB Recipes: With Data Modeling and Query Building Strategies | |
US20230418803A1 (en) | Techniques for integrating data for multple instances of a data artifact | |
CN110888895B (zh) | 基于关联的访问控制委派 | |
US20220229858A1 (en) | Multi-cloud object store access | |
US20180365306A1 (en) | System and Method for Query Optimized Modeling | |
US10402405B2 (en) | Explicit declaration of associations to optimize grouping of elements by large data objects | |
Swain | Tethys Platform Documentation | |
CN117112538A (zh) | 数据库操作方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |