CN108475288A - 一种联合数据库统一访问控制的系统、方法和设备 - Google Patents

一种联合数据库统一访问控制的系统、方法和设备 Download PDF

Info

Publication number
CN108475288A
CN108475288A CN201780006187.8A CN201780006187A CN108475288A CN 108475288 A CN108475288 A CN 108475288A CN 201780006187 A CN201780006187 A CN 201780006187A CN 108475288 A CN108475288 A CN 108475288A
Authority
CN
China
Prior art keywords
row
inquiry plan
inquiry
plan
access
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
CN201780006187.8A
Other languages
English (en)
Other versions
CN108475288B (zh
Inventor
V·魏玛·达斯·卡马斯
蒂约·托马斯
维诺德·克里希纳库蒂·钱德里卡
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108475288A publication Critical patent/CN108475288A/zh
Application granted granted Critical
Publication of CN108475288B publication Critical patent/CN108475288B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24524Access plan code generation and invalidation; Reuse of access plans
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • 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

Landscapes

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

Abstract

本发明公开了一种联合数据库统一访问控制的系统、方法和设备。在一种实现方式中,公开了一种用于向联合数据库中存储的数据提供统一访问控制的联合系统(1300)。所述联合系统(1300)包括至少一个中央访问控制器(1312),用于接收至少一个生成的查询计划;通过至少一个用户权限、所述查询计划中的表和所述查询计划中相关联的列来检验所述生成的查询计划,所述至少一个用户权限预先存储在至少一个中央授权元数据表中;若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划;将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;执行所述物理查询,以返回接收到的联合查询的至少一个结果。

Description

一种联合数据库统一访问控制的系统、方法和设备
技术领域
本发明在此所描述的主题通常涉及数据库技术,更具体而言,涉及一种联合数据库统一访问控制的系统、方法和设备。
背景技术
众所周知,数据库是经过组织后的信息的集合,以便于访问、管理和更新信息。一方面,根据内容类型数据库可划分为:书目、全文、数字和图像。作为元数据库管理系统(meta-database management system,简称DBMS)的一种,联合数据库系统透明地将多个自治数据库系统映射至一个联合数据库。多个成分数据库通过计算机网络互联,并可地域性分散。在联合数据库这个系统中,多个数据库作为一个单一实体运行。该系统中的每个成分数据库完全自我管理并起作用。因为成分数据库系统保持自治,因此,联合数据库系统对于融合几个不同的数据库这一(有时是艰巨的)任务来说是个矛盾的选择。联合数据库或虚拟数据库包括联合数据库系统中的所有成分数据库。由于存在数据联合,因此,在不同的成分数据库中不存在实际数据集成。
图1(a)示出了传统的联合数据库系统,在此系统中,客户端和用户与单个数据库服务器相连,其中,所述数据库服务器为联合服务器。所述联合服务器向用户和客户端提供了表集合。所述联合服务器不包括或不存储任意数据库表。所述联合服务器仅保持元数据映射,即将虚拟联合表映射至一个底层数据库中的真实/物理表。也可将图1(a)视为大数据联合的图示。图1(b)示出了将虚拟联合表映射至一个底层数据库中的真实/物理表的元数据映射。当用户在联合服务器中查询一个或多个表时,在映射元数据中找到物理表的位置,查询真实/物理数据库,收集整合结果,然后将结果发送给用户。
很多应用必然要求细粒度访问控制。最近,某些商业系统已经开始增加对指定这类策略的支持。通过指定策略(使用预测授权的概念),应用能平衡此功能。数据库系统将通过适当地重写查询执行所述策略。授权策略能够使用复杂的SQL(结构化查询语言)构造,如子查询和子联合,因此,增加了重写查询的复杂度和成本。通常,联合数据库系统没有实现细粒度访问控制(例如,基于表级别、列级别或行级别的访问控制)。
在各种可用的现有技术机制中,联合数据库系统的访问控制通常依赖于底层物理数据库的访问控制特性。联合数据库服务器中配置了每个底层数据库的登录凭据。进一步地,一些现有技术也能够提供联合数据库服务器中配置的每个底层数据库的多个登录凭据。将联合数据库的每个用户映射至底层数据库的不同用户。图2示出了联合数据库服务器中配置了每个底层数据库的登录凭据的此类示例。如图2所示,无论哪个用户查询联合数据库,使用相同的凭证查询底层数据库。进一步地,如图2所示,无论是联合数据库的“用户A”还是“用户B”执行所述查询,查询底层Oracle数据库的是“Scott”,查询底层My SQL数据库的是“root”。
可得知,在对所述传统的联合数据库系统和联合数据库系统访问控制的各种技术进行严格审核和可用性验证后,任意联合数据库都没有完成细粒度访问控制,从而向所有用户提供同样级别的访问。进一步地,需要通过将所述访问配置到各个数据库(database,简称DB)中来控制所述访问。此外,传统的联合数据库系统和联合数据库系统访问控制的各种技术不适用于如大数据系统等的数据库。
发明内容
本发明内容是为了介绍联合数据库统一访问控制的系统、方法以及设备的相关概念。以下对上述概念进行进一步详细说明。本发明内容的目的不在于识别权利要求书保护的主题的基本特征,也不在于确定或限制权利要求书保护的主题的范围。
本发明的主要目的是,通过向联合数据库服务器提供系统、方法和设备以向用户提供集中式的细粒度访问控制来解决上述提到的技术问题。
相应地,在一种实现方式中,公开了用于向联合数据库中存储的数据提供统一访问控制的联合系统。所述联合系统包括至少一个查询解析器、至少一个查询规划器、至少一个中央访问控制器、至少一个物理查询生成器和至少一个执行器。所述查询解析器用于:接收至少一个联合查询;解析所述接收到的联合查询以从所述联合查询中获取至少一条表关联信息,其中,所述表关联信息包括至少一个表名和至少一个相关联的列名;通过至少一个预先存储的联合元数据验证所述获取的表关联信息,以识别至少一个数据库中的至少一个表。所述查询规划器用于基于所述表关联信息并利用所述识别的表生成至少一个查询计划。所述中央访问控制器用于通过表、相关联的列、以及预先存储在至少一个中央授权元数据表中的至少一个用户权限来检验基于所述表关联信息生成的所述查询计划;若所述预先存储的用户权限拒绝访问所述识别的表关联信息(即当所述预先存储的用户权限不能访问所有列和/或当所述预先存储的用户权限不能访问所有行时),则更新所述生成的查询计划。所述物理查询生成器用于将所述更新的查询计划转换为至少一个物理查询,以使所述数据库执行所述至少一个物理查询。所述执行器用于执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
在一种实现方式中,公开了一种用于向联合数据库中存储的数据提供统一访问控制的方法。所述方法包括:
●接收至少一个联合查询;
●解析所述接收到的联合查询以从所述联合查询中获取至少一条表关联信息,其中,所述表关联信息包括至少一个表名和至少一个相关联的列名;
●通过至少一个联合元数据验证所述获取的表关联信息,以识别至少一个数据库中的至少一个表;
●基于所述表关联信息并利用所述识别的表生成至少一个查询计划;
●通过表、相关联的列、以及预先存储在至少一个中央授权元数据表中的至少一个用户权限来检验基于所述表关联信息生成的所述查询计划;
●若所述预先存储的用户权限拒绝访问所述识别的表关联信息(即当所述预先存储的用户权限不能访问所有列和/或当所述预先存储的用户权限不能访问所有行时),更新所述生成的查询计划;
●将所述更新的查询计划转换为至少一个物理查询,以使所述数据库执行所述至少一个物理查询;
●执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
在一种实现方式中,公开了联合系统中用于向联合数据库中存储的数据提供统一访问控制的设备。所述设备包括与存储器相耦合的处理器,以执行所述存储器中的多个模块,其中,所述处理器执行所述模块。所述设备用于:接收至少一个生成的查询计划;通过所述查询计划中的表、相关联的列、以及预先存储在至少一个中央授权元数据表中的至少一个用户权限来检验所述生成的查询计划;若所述预先存储的用户权限拒绝访问所述已检验的查询计划(即当所述预先存储的用户权限不能访问所有列和/或当所述预先存储的用户权限不能访问所有行时),更新所述生成的查询计划;将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。进一步地,若所述预先存储的用户权限允许访问表,和/或当所述查询计划是针对包含“select*”的查询而生成的但是对某些列的访问受到限制时,和/或当所述查询计划是针对包含预定义的行级别访问受限的查询而生成时,更新所述查询计划。
所述查询计划是基于从至少一个接收到的联合查询中获取的至少一条表关联信息而生成的。所述查询计划为与授权命令相关联的授权命令计划,或者为与传统查询相关联的普通查询计划,或者为所述授权命令计划和所述普通查询计划的组合。若所述查询计划为授权查询计划,根据与所述接收到的授权查询计划相关联的至少一条信息更新中央授权元数据。若对至少一个表和/或列的访问受到限制,放弃所述接收到的联合查询。
所述中央访问控制器还将至少一个受限列从所述生成的查询计划中移除,以更新所述生成的查询计划,具体地,若基于所述接收到的联合查询而生成的查询计划包含星号系统,则移除所述受限列;和/或添加至少一个过滤器将至少一个受限行从所述生成的查询计划中排除,以更新所述生成的查询计划;和/或若所述查询包括至少一个受限表和/或至少一个受限列以更新所述生成的查询计划,放弃所述接收到的联合查询。
所述中央访问控制器还将所述用户权限存储在所述中央授权元数据表中,其中,所述中央授权元数据表通过访问所述数据库的至少一个用户保存与访问所述联合查询中接收的表关联信息相关联的信息。
所述中央访问控制器还检验从所述接收到的查询计划中提取的所述表是否包括用户访问限制,其中,所述访问是通过所述中央授权元数据来检验的;若用户访问没有受到限制,从所述查询计划中提取至少一个列;检验所述用户对所述列的访问是否受到限制;如果所述用户对所述列的访问没有受到限制,检验所述用户对所述列中的至少一行的访问是否受到限制;若行受到限制,添加至少一个过滤器排除所述受限行,由此更新所述接收到的查询计划以执行所述更新的查询计划;或者,若行没有受到限制,更新所述接收到的查询计划以执行所述更新的查询计划。
所述中央授权元数据表存储与位于所述数据库中的至少一个表相关联的至少一个表级别控制、列级别控制、行级别控制、记录级别控制、或者上述四种的任意组合。
所述中央授权元数据表在逻辑上与所述数据库中的至少一个联合元数据相关联。
实施本发明所取得的技术效益为本发明的系统、方法以及设备:
●为联合查询提供访问控制,其中,不同的用户可以对联合表具有不同的访问权;
●通过在所述查询中应用限制/过滤器,在高层提供大数据安全控制和访问控制;
●为数据库提供普通访问控制,其中,所述数据库不具有内置访问控制机制,比如大数据中的Hbase、Parquet文件等;
●提供具有大数据与传统数据源组合的统一访问控制;
●为大数据提供单点以实现安全控制和访问控制,而不是将安全控制和访问控制分别配置到每个数据源中;
●为联合数据库提供统一的、更高级别的访问控制;
●提供访问控制,即使底层数据源不提供内置访问控制机制;
●降低/避免传统方法中的安全漏洞风险,其中,管理员需要将安全配置到许多不同的系统中;
●为安全/系统管理员提供操作联合数据库的便利;
●提供数据访问的集中式视图和集中式数据治理。
进一步地,与现有技术相比,通过本发明的系统、方法以及设备提供了联合数据库中央访问控制。所述中央机制还用于将所述访问控制(细粒度表级别、列级别和行级别)配置到联合系统中的各个底层数据库。
此外,与现有技术相比,本发明的系统、方法以及设备提供了中央访问控制器,用于通过中央授权元数据中的用户权限检查查询计划中的表名和列名。所述中央授权元数据包括表级别控制、列级别控制、和/或行级别控制。所述中央访问控制器用于通过将受限列从计划中移除,增加过滤器排除受限行,或若该查询包括受限表,放弃查询来更新所述查询计划。当所述列受到限制时,若没有明确指明列,将所述列从所述查询计划中移除。例如,所述查询包括“select*”,和/或,若用户已明确指定所述查询中的任意受限列,放弃所述查询。
以上涉及的与第一实现方式相关的各种选择和优选实施例也适用于其他相关的实现方式。
附图说明
该详细描述是参考附图描述的。在附图中,参考编号最左边的数字表示所述参考编号在该附图中首次出现。所有附图使用相同数字指代相同特征的组件。
图1(a)示出了现有技术中的大数据联合;
图1(b)示出了现有技术中将虚拟联合表映射至一个底层数据库中的真实/物理表的元数据映射;
图2示出了现有技术中联合数据库服务器中配置了每个底层数据库的登录凭据的示例;
图3示出了本发明实施例用于向联合数据库提供中央访问控制的系统的方框图;
图4示出了本发明实施例的中央授权元数据;
图5示出了本发明实施例的中央授权元数据与联合元数据的集成;
图6示出了本发明实施例的中央访问控制器流的设计;
图7示出了本发明实施例的中央访问控制器流的流程图;
图8(a)、图8(b)、图8(c)、图9(a)、图9(b)、图10、图11和图12示出了本发明实施例的中央访问的示例;
图13示出了本发明实施例用于向联合数据库中存储的数据提供统一访问控制的联合系统;
图14示出了本发明实施例在联合系统中用于向联合数据库中存储的数据提供统一访问控制的设备;
图15示出了本发明实施例用于向联合数据库中存储的数据提供统一访问控制的方法。
应理解,附图是为了阐述本发明的概念,且可不按此比例绘制。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明可以以多种方式实现,例如,通过流程、装置、系统、物质成分、或者计算机可读介质来实现。例如,计算机可读介质为计算机可读存储介质或计算机网络,其中,可通过光或电子通信链路来发送程序指令。在此说明书中,这些实现方式或本发明采用的其他任意形式可称为技术。通常,在本发明的范围内可以改变所公开的过程的步骤的顺序。
下面提供了本发明一个或多个实施例的详细描述以及附图,用于阐述本发明的原理。本发明结合这些实施例进行描述,然而,本发明不限于任何实施例。本发明的范围仅受权利要求所限,且本发明包含了多个替代物、修改和等同物。以下描述中阐述了许多具体细节,以便透彻理解本发明。这些细节仅为示例,可以在不具有部分或全部这些具体细节的情况下根据权利要求实施本发明。为表述清晰,本发明涉及的技术领域中已知的技术材料没有具体描述,避免本发明不必要的表述模糊。
以下公开了一种联合数据库统一访问控制的系统、方法和设备。
尽管多个方面描述了联合数据库统一访问控制的系统、方法和设备,本发明可通过任意数量的不同的计算系统、环境和/或配置来实现。以下示例性系统、装置和方法的上下文中描述了这些实施例。
在一种实现方式中,本发明的主要目的是,通过向联合数据库服务器提供系统、方法和设备以向大数据提供集中式的细粒度访问控制来解决上述提到的技术问题。本发明提供了用于将访问控制(细粒度表级别、列级别和行级别)配置到联合系统中的各个底层数据库的中央机制。
现参考图3,图3示出了本发明实施例用于向联合数据库提供中央访问控制的系统的方框图。在一种实现方式中,图3示出了在实现本发明的过程中可涉及到的各个组件。在一种实现方式中,本发明可以包括至少一个查询解析器、至少一个查询规划器、至少一个中央访问控制器、至少一个物理查询生成器和至少一个执行器。
在一种实现方式中,如图2所示,用户可输入联合查询。众所周知,所述联合查询能够基于许多不同来源的信息进行查询并提供解决方案。所述解析器解析所述查询,获取在所述查询中使用的表名和列名,并通过联合元数据来验证所述表名和列名。然后,所述解析器可将验证的解析信息输入到所述规划器。所述规划器使用所述解析的信息并基于来自所述联合元数据的源信息创建查询计划。之后,所述规划器将该计划发送给所述中央访问控制器。
所述中央访问控制器通过中央授权元数据中的用户权限检查所述查询计划中的表名和列名。所述中央访问控制器通过将受限列从所述计划中移除,添加过滤器排除受限行,和/或若所述查询包括受限表和/或受限列,放弃查询以更新所述查询计划。
之后,所述物理查询生成器可将更新的查询计划转换为底层数据库的物理查询。查询网关/所述执行器执行所述物理查询并将结果发送给结果管理器。所述结果管理器可合并针对多个物理数据库的多个查询结果,并将最终结果返回给用户。
现参考图4,图4示出了本发明实施例的中央授权元数据。如图4所示,所述中央授权元数据为存储以细粒度访问控制(表级别、列级别或行级别)的方式授予给各个用户的访问权限的表。
在一种实现方式中,所述中央授权元数据可以包括用户信息,各自权限/访问权,从表、列、行、对象、和其任意组合中选出的实体类型,和基于访问本发明的用户而选择的实体名。授权人员可配置或编辑访问权。
在一种实现方式中,所述中央授权元数据可存储包括但不限于与表级别控制、列级别控制以及行级别控制相关联的信息。所述表级别控制可指示能够访问带有实体名“Table_Name”的表(读(R)/写(W)/改(A))的用户。所述列级别控制可指示能够访问带有实体名“Table_Name:Column_Name”的列(读/写)的用户。所述行级别控制可指示能够访问带有实体名“Table_Name:Column_Name:Cell_Value”的行(读)的用户。
现参考图5,其示出了本发明实施例的中央授权元数据与联合元数据的集成。所述联合元数据和所述中央授权元数据可存储在两个不同的元数据存储器,或者存储在同一个元数据存储器。这两个元数据之间的集成是根据逻辑名称参考量形成的,其中所述联合元数据中定义的表名与所述中央授权元数据中使用的表名完全相同。
在一种实现方式中,如图5所示,所述中央授权元数据将虚拟联合表映射至一个底层数据库中的真实/物理表。当用户仅基于所述中央授权元数据的访问检查根据本发明在联合服务器中查询一个或多个表时,若提供访问数据的授权,在映射元数据中找到物理表的位置,查询真实/物理数据库,收集整合结果,然后将结果发送给用户。
现参考图6,其示出了本发明实施例的中央访问控制器流的设计。设计中央访问控制器是为了处理用户查询和更新中央授权元数据(授权命令)。若用户/管理员发出授权命令,所述中央访问控制器接收集中授权计划,根据所述授权命令和提供的参数更新所述中央授权元数据。若所述用户发出查询,所述中央访问控制器接收查询计划,对该查询计划进行进一步验证和更新,最终生成并输出更新的查询计划。
在一种实现方式中,如图6所示,当访问所述中央授权元数据时,集中授权元数据更新器用于访问至少一个联合访问检查器以调用至少一个联合行验证器、联合列验证器和/或联合表验证器。因而,更新联合查询计划,使用更新后的联合查询计划以执行所述更新后的查询计划。
现参考图7,其示出了本发明实施例的中央访问控制器流的流程图。如图7所示,所述中央访问控制器首先从查询计划中提取表信息并检查是否有任意表受用户限制。若任意一个或多个选出的表受限,放弃查询。若所有选出的表都不受限制,从查询计划中提取出列,并检查所述列中的任意一个是否受限。如果用户查询指定通配符列名*,若表中有任意受限列,则使用允许列列表替换*。若所述计划中选出的任意列受限,放弃该查询。最后,若存在任意受限行,添加合适的过滤器到所述查询计划。
在一种实现方式中,如图7所示,在本发明中,接收查询计划。接收到所述查询计划后,在本发明中,至少提取该查询中接收到的表。在本发明中,提取所述表时,根据中央授权元数据检查所述表是否受用户访问的限制。若表不受用户访问的限制,本发明中,进一步检查列是否对所述特定用户具有访问限制。若对所述列的访问不受任何限制,本发明中,进一步检查任意行是否对所述特定用户具有访问限制。若对所述行的访问不受限制,执行该查询并返回结果。
在一种实现方式中,若发现列和/或行受到查询访问的限制,本发明中,添加过滤器排除受限行,相应地,使用联合查询更新器更新所述查询计划。
图8(a)、图8(b)、图8(c)、图9(a)、图9(b)、图10、图11和图12示出了本发明实施例的中央访问的示例。图8(a)至图12示出了中央访问控制器如何在各种场景中修改查询。
图8(a)示出了选择查询*仅替换授权列的场景。图8(a)示出了选择查询*(Select*from EMPLOYEE_PROFILES)。此时,所述访问控制器得知表中有4列,但是工资列受到限制。因此,所述访问控制器用3个准入列替换*,并将所述查询修改为“Select EmpID name,age,dept from EMPLOYEE_INFO”。图8(b)示出了查询无法访问非授权列的场景。在“Selectname,age,dept,salary from EMPLOYEE_PROFILES”的查询中,访问了4个字段(姓名、年龄、部门和工资),但是工资列受到限制。此时,无法执行所述查询。图8(c)示出了自动添加过滤器排除非授权行的场景。在“Select name,age,dept from EMPLOYEE_INFO”的查询中,在“DEPT”列中的“CSI”值受限于用户A。因此,所述访问控制器会在所述选择查询中添加一个过滤条件“where DEPT<>CSI”。图9(a)示出了关联联合表的场景。因为选择查询“SelectE.Name,O.Item,O.Price from ORDER_PROFILES as O join EMPLOYEE_PROFILES as E onO.EmpID=E.EmpID”中没有使用受限列,因此可以成功执行所述查询。图9(b)示出了具有行级别访问控制的关联联合表。在具有行级别访问限制的表中,所述访问控制器会自动添加过滤条件“DEPT<>CSI”到所述选择查询中。图10示出了对关联键不具有任何访问权限的关联联合表的场景。当对联接条件中使用的列的访问受到限制时,选择查询失败。图11示出了联合表的集合。在选择查询*“Select*from ORG_A_EMPLOYEE_INFO”和“Select*from ORG_B_EMPLOYEE_INFO”中,所述访问控制器获知表中有5列,但是工资列受限。因此,所述访问控制器用ORG_A_EMPLOYEE_INFO表和ORG_B_EMPLOYEE_INFO表中的4个准入列替换*。因为两种查询中的列名、列类型以及列数都相同,合并操作会成功进行。图12示出了合并操作中的列级别访问限制。在“Select*from ORG_A_EMPLOYEE_INFO”的查询中,所述访问控制器获知表中有5列,但是工资列受限。因此,所述访问控制器会用4个准入列替换*。在“Select*fromORG_B_EMPLOYEE_INFO”的查询中,所述访问控制器使用表中5个所有可用列替换*。因为第一次查询和第二次查询的列数不同,合并操作失败。
现参考图13,图13公开了用于向联合数据库中存储的数据提供统一访问控制的联合系统1300。现参考图14,图14公开了联合系统中用于向联合数据库中存储的数据提供统一访问控制的设备1400。尽管本发明是在考虑到本发明是通过所述联合系统1300和/或所述设备1400来实现进行了说明,应理解,数据库系统也可通过多种计算系统来实现,如笔记本电脑、台式计算机、笔记本、工作站、大型计算机、服务器、网络服务器等。应理解,多个用户或位于所述数据库系统中的应用可访问所述数据库系统。所述联合系统1300和/或所述设备1400例如可包括但不限于便携计算机、个人数字助理、手持设备、传感器、路由器、网关和工作站。所述联合系统1300和/或所述设备1400以通信的方式彼此耦合,或与其他设备、节点、或装置耦合,以形成网络(未示出)。
在一种实现方式中,所述网络(未示出)可以为无线网络、有线网络或二者的组合。所述网络可以为以下多种不同类型的网络中的一种,如GSM、CDMA、LTE、UMTS、企业内部网、局域网(local area network,简称LAN)、广域网(wide area network,简称WAN)、互联网等。所述网络可为专网或者为共享网络。所述共享网络代表多种不同类型的网络的联合,其中,所述多种不同类型的网络使用多种协议来与彼此相互通信,该多种协议可为超文本传输协议(Hypertext Transfer Protocol,简称HTTP)、传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,简称TCP/IP)、无线应用协议(Wireless Application Protocol,简称WAP)等。进一步地,所述网络可包括各种网络设备,包括路由器、网桥、服务器、计算设备、存储设备等。
所述联合系统1300和/或所述设备1400可包括处理器、接口和存储器。所述至少一个处理器可为一个或多个微处理器、微型机、微控制器、数字信号处理器、中央处理器、状态机、逻辑电路、和/或基于操作指令操纵信号的任意设备。在其他能力中,所述至少一个处理器用于获取和执行存储器中存储的计算机可读指令或模块。
例如,所述接口(I/O接口)1304和/或1404可包括多个软件接口和硬件接口,如Web接口、图形用户接口等。所述I/O接口可允许所述数据库系统、第一节点、第二节点和第三节点与用户直接交互。进一步地,所述I/O接口可使所述联合系统1300和/或所述设备1400与其他设备、节点或计算设备,如万维网服务器和外部数据服务器(未示出)相互通信。所述I/O接口能促进各种网络以及协议类型范围内的通信。所述网络包括有线网络,例如GSM、CDMA、LAN、电缆等,并包括无线网络,如WLAN、蜂窝、卫星等。所述I/O接口可包括用于将多个设备相互连接或使多个设备与其他服务器相连接的一个或多个端口。所述I/O接口可通过接口屏幕使用户和所述数据库系统、所述第一节点、所述第二节点以及所述第三节点相交互。
所述存储器可包括现有技术中已知的任意计算机可读介质。所述存储器可为易失存储器,如静态随机存取存储器(static random access memory,简称SRAM)和动态随机存取存储器(dynamic random access memory,简称DRAM),和/或可为非易失性存储器,如只读存储器(read only memory,简称ROM)、可擦除可编程ROM、闪存、硬盘、光盘和磁带。所述存储器可以包括多个指令、模块或应用以执行各种功能。所述存储器包括例程、程序、对象、组件以及数据结构等,其执行特定任务或实现特定抽象数据类型。
现参考图13,图13公开了用于向联合数据库中存储的数据提供统一访问控制的联合系统1300。所述联合系统1300包括至少一个中央访问控制器1312,用于接收至少一个生成的查询计划;通过至少一个用户权限、所述查询计划中的表和所述查询计划中相关联的列来检验所述生成的查询计划,所述至少一个用户权限预先存储在至少一个中央授权元数据表中;若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划;将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;执行所述物理查询,以返回接收到的联合查询的至少一个结果。
在一种实现方式中,所述查询计划是基于从至少一个接收到的联合查询中获取的至少一条表关联信息而生成的。
在一种实现方式中,所述中央访问控制器还可用于:将至少一个受限列从所述生成的查询计划中移除,以更新所述生成的查询计划;和/或添加至少一个过滤器将至少一个受限行从所述生成的查询计划中排除,以更新所述生成的查询计划;和/或若所述查询包括至少一个受限表以更新所述生成的查询计划,放弃所述接收到的联合查询。
在一种实现方式中,所述中央访问控制器还可用于:将所述用户权限存储在所述中央授权元数据表中,其中,所述中央授权元数据表通过访问所述数据库的至少一个用户保存与访问所述联合查询中接收的表关联信息相关联的信息。
在一种实现方式中,所述中央授权元数据表存储与位于所述数据库中的至少一个表相关联的至少一个表级别控制、列级别控制、行级别控制、记录级别控制、或者上述四种的任意组合。
在一种实现方式中,所述用户权限为从一组权限中选出的至少一个访问权,该组权限包括:读、写、改或以上三种任意组合。
在一种实现方式中,所述中央授权元数据表在逻辑上与所述数据库中的至少一个联合元数据相关联。
在一种实现方式中,所述查询计划是基于从至少一个接收到的联合查询中获取的至少一条表关联信息而生成的。
在一种实现方式中,所述查询计划包括将基于所述接收到的联合查询被访问的至少一条表关联信息。优选地,所述表关联信息包括:至少一个待选出的列、待应用于至少一个行的至少一个过滤器、或基于所述接收到的表关联信息的至少一种操作,如排序、分组、整合或以上四种的任意组合。
在一种实现方式中,所述查询计划为与授权命令相关联的授权查询计划,或者为与传统命令相关联的普通查询计划,或者为所述授权查询计划和所述普通查询计划的组合。
在一种实现方式中,若所述查询计划为授权查询计划,所述中央访问控制器还用于:根据与所述接收到的授权查询计划相关联的至少一条信息更新所述中央授权元数据。
在一种实现方式中,所述中央访问控制器还包括至少一个联合访问检查器,所述联合访问检查器用于:验证对所述联合查询中的所述表、和/或所述列、和/或所述行的访问。
在一种实现方式中,所述中央访问控制器还可包括从联合表验证器、列验证器、行验证器、和三者的任意组合中选出的至少一个验证器。若所述查询计划为普通查询计划,所述验证器用于通过至少一个联合访问检查器验证对所述联合查询中的所述表、和/或所述列、和/或所述行的访问。
在一种实现方式中,所述中央访问控制器还可包括至少一个联合访问检查器,所述联合访问检查器用于:检验从所述接收到的查询计划中提取的所述表是否包括用户访问限制,其中,所述访问是通过所述中央授权元数据来检验的;若用户访问没有受到限制,从所述查询计划中提取至少一个列;检验所述用户对所述列的访问是否受到限制;如果所述用户对所述列的访问没有受到限制,检验所述用户对所述列中的至少一行的访问是否受到限制;若行受到限制,添加至少一个过滤器排除所述受限行,由此更新所述接收到的查询计划以执行所述更新的查询计划;或者,若行没有受到限制,更新所述接收到的查询计划以执行所述更新的查询计划。
在一种实现方式中,公开了用于向联合数据库中存储的数据提供统一访问控制的联合系统1300。所述联合系统1300包括至少一个查询解析器1308、至少一个查询规划器1310、至少一个中央访问控制器1312、至少一个物理查询生成器1314和至少一个执行器1316。
所述查询解析器1308可用于:接收至少一个联合查询;解析所述接收到的联合查询以从所述联合查询中获取至少一条表关联信息,其中,所述表关联信息包括至少一个表名和至少一个相关联的列名;通过至少一个预先存储的联合元数据验证所述获取的表关联信息,以识别至少一个数据库中的至少一个表。
所述查询规划器1310可用于基于所述表关联信息并利用所述识别的表生成至少一个查询计划。
所述中央访问控制器1312可用于:通过表、相关联的列、以及预先存储在至少一个中央授权元数据表中的至少一个用户权限来检验基于所述表关联信息生成的所述查询计划;若所述预先存储的用户权限允许访问所述识别的表关联信息,更新所述生成的查询计划。
所述物理查询生成器1314可用于将所述更新的查询计划转换为至少一个物理查询,以使所述数据库执行所述至少一个物理查询。
所述执行器1316可用于执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
在一种实现方式中,所述联合系统1300还可包括处理器1302,所述处理器1302与存储器1306相耦合。
在一种实现方式中,公开了联合系统中用于向联合数据库中存储的数据提供统一访问控制的设备1400。所述设备包括处理器1402,所述处理器1402与存储器1406相耦合,以执行所述存储器1406中的多个模块,其中,所述处理器1402执行所述多个模块以用于:1408接收至少一个生成的查询计划;1410通过至少一个用户权限、所述查询计划中的表和所述查询计划中相关联的列来检验所述生成的查询计划,所述至少一个用户权限预先存储在至少一个中央授权元数据表中;1412若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划;1414将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;1416执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
在一种实现方式中,所述联合系统1300包括处理器1302,所述处理器1302与存储器1306相耦合,以执行所述存储器1306中的多个模块,其中,所述处理器1302执行所述多个模块以用于:通过将查询计划中的至少一个表名和至少一个相关联的列名与预先存储在至少一个中央授权元数据表中的至少一个用户权限相比较来检验至少一个生成的查询计划;若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划;执行所述更新的查询计划,以返回至少一个结果。
现参考图15,图15示出了本发明实施例联合系统向联合数据库中存储的数据提供统一访问控制的方法。所述方法可在计算机可执行指令的广义语境中描述。一般来讲,所述计算机可执行指令可以包括例程、程序、对象、组件、数据结构、过程、模块,功能等,可执行特殊功能或者实现特殊抽象数据类型。所述方法也可在分布式计算环境中实施,在所述分布式计算环境中,通过通信网连接的多个远程处理设备执行功能。在所述分布式计算环境中,计算机可执行指令既可位于本地计算机存储介质也可位于远程计算机存储介质。所述本地计算机存储介质和远程计算机存储介质包括存储设备。
所述方法描述的顺序不应被理解为一种限制,任意数量的所描述的方法步骤可以任何顺序组合以实现该方法或替代的方法。此外,单独的步骤可从方法删除而不脱离本发明所描述的主题的保护范围。此外,所述方法可在任何适当的硬件、软件、固件或其组合中实现。然而,为便于说明,在以下描述的实施例中可认为所述方法是在上述描述的所述联合系统1300和/或所述设备1400中实施的。
在一种实现方式中,公开了用于向联合数据库中存储的数据提供统一访问控制的方法。
步骤1502:接收至少一个联合查询。
步骤1504:解析所述接收到的联合查询以从所述联合查询中获取至少一条表关联信息。所述表关联信息包括至少一个表名和至少一个相关联的列名。
步骤1506:通过至少一个联合元数据验证所述获取的表关联信息,以识别至少一个数据库中的至少一个表。
步骤1508:基于所述表关联信息并利用所述识别的表生成至少一个查询计划。所述查询计划是基于从至少一个接收到的联合查询中获取的至少一条表关联信息而生成的。所述查询计划可包括将基于所述接收到的联合查询被访问的至少一条表关联信息。优选地,所述表关联信息包括:至少一个待选出的列、待应用于至少一个行的至少一个过滤器、或基于所述接收到的表关联信息的至少一种操作,如排序、分组、整合或以上四种的任意组合。
在一种实现方式中,所述查询计划为与授权命令相关联的授权查询计划,或者为与传统命令相关联的普通查询计划,或者为所述授权查询计划和所述普通查询计划的组合。若所述查询计划为授权查询计划,所述中央访问控制器还用于:根据与所述接收到的授权查询计划相关联的至少一条信息更新所述中央授权元数据。通过至少一个联合访问检查器验证对所述联合查询中的所述表、和/或所述列、和/或所述行的访问。
若所述查询计划为普通查询计划,所述方法还包括:通过从联合表验证器、列验证器、行验证器、和三者的任意组合中选出的至少一个验证器以及至少一个联合访问检查器验证对所述联合查询中的所述表、和/或所述列、和/或所述行的访问。
步骤1510:通过预先存储在至少一个中央授权元数据表中的至少一个用户权限来检验基于所述表关联信息生成的所述查询计划。检验所述表名和所述相关联的列名。将所述用户权限存储在所述中央授权元数据表中,其中,所述中央授权元数据表通过访问所述数据库的至少一个用户保存与访问所述表关联信息相关联的信息。所述中央授权元数据表可存储与位于所述数据库中的所述表相关联的至少一个表级别控制、列级别控制、行级别控制、记录级别控制、或者上述四种的任意组合。所述用户权限可为从一组权限中选出的至少一个访问权,该组权限包括:读、写、改或以上三种任意组合。所述中央授权元数据表在逻辑上可与所述数据库中的至少一个联合元数据相关联。
步骤1512:若所述预先存储的用户权限允许访问所述识别的表关联信息,更新所述生成的查询计划。在一种实现方式中,在更新所述查询计划时,所述方法可以包括:将至少一个受限列从所述生成的查询计划中移除;和/或添加至少一个过滤器将至少一个受限行从所述生成的查询计划中排除;和/或若所述查询包括至少一个受限表,放弃所述接收到的联合查询。
步骤1514:将所述更新的查询计划转换为至少一个物理查询,以使所述数据库执行所述至少一个物理查询。
步骤1516:执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
在一种实现方式中,公开了联合系统向联合数据库中存储的数据提供统一访问控制的方法。所述方法包括:
●接收至少一个生成的查询计划;
●通过至少一个用户权限、所述查询计划中的表和所述查询计划中相关联的列来检验所述生成的查询计划,所述至少一个用户权限预先存储在至少一个中央授权元数据表中;
●若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划;
●将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;
●执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
在一种实现方式中,所述查询计划是基于从至少一个接收到的联合查询中获取的至少一条表关联信息而生成的。
在一种实现方式中,公开了一种数据加载方法。所述方法包括:
●至少一个第一节点执行接收到的至少一个查询;
●所述第一节点通过利用所述接收到的查询分析待加载数据和数据库服务器或数据库集群中的至少一个资源的至少一种可用性;
●所述第一节点将所述数据分配给至少一个第二节点,其中所述第二节点接收指令以加入所述第一节点的数据加载操作;
●接收到来自所述第一节点的数据后,所述第二节点生成至少一个数据页和/或至少一个数据段,其中,所述数据页和/或所述数据段包括至少一个元数据和/或至少一个数据文件;
●所述第二节点基于至少一个所有权将所述生成的数据页和/或数据段分配给至少一个第三节点进行存储。
除了上述所公开的内容之外,本发明具有以下一些附加优点:
●提供用于将访问控制(细粒度表、列和行)配置到联合系统中的各个底层数据库的中央机制;
●为联合查询提供访问控制,其中,不同的用户可以对联合表具有不同的访问权;
●通过在所述查询中应用限制/过滤器,在高层提供大数据安全控制和访问控制;
●提供统一访问控制机制,尽管不同的底层系统支持不同级别的访问控制;
●为数据库提供普通访问控制,其中,所述数据库不具有内置访问控制机制,比如大数据中的Hbase、Parquet文件等;
●当大数据与传统数据源混合时,提供统一访问控制。
本领域技术人员可以理解,可使用任何已知的或新的算法来实施本发明。然而,需要注意的是,不管使用何种已知的或新的算法,本发明提供了一种可在备份操作中使用的方法,以实现上述提到的益处和技术进步。
本领域普通技术人员能够认识到,结合本说明书所公开的实施例中所描述的示例,可通过电子硬件或计算机软件与电子硬件的组合来实施单元和算法步骤。功能是由硬件还是由软件执行取决于技术方案的特定应用和设计约束条件。本领域技术人员可使用不同方法实现每个特定应用的所描述功能,但是不应认为该实现超出本发明的范围。
本领域技术人员可清楚地理解,出于方便和简单描述的目的,对于前述系统、装置和单元的详细工作过程,可参考前述方法实施例中的对应过程,本文中不再描述细节。
在本应用中提供若干实施例中,应理解,所公开的系统、装置和方法可通过其它方式实现。例如,所描述的装置实施例仅仅是示例性的。例如,单元划分仅仅是逻辑功能划分且在实际实现中可以是其它划分。例如,可将多个单元或部件合并或集成到另一系统中,或可忽略或不执行部分特征。另外,可通过一些接口实现所显示或论述的互相耦合或直接耦合或通信连接。装置或单元之间的直接耦合或通信连接可通过电子、机械或其它形式实现。
当这些功能以软件功能单元的形式实现以及作为单独产品销售或使用时它们可存储在计算机可读存储介质中。基于这种理解本发明的技术方案基本上或构成现有技术的部分或技术方案的部分可通过软件产品的形式实现。计算机软件产品存储在存储介质中并包括若干指令,用于指示计算机设备(其可为为个人计算机、服务器或网络设备)执行本发明实施例中所描述的方法的所有或部分步骤。上述存储介质包括:可以存储程序代码的任何媒体,例如USB盘、可移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁盘或光学光盘。
尽管联合数据库统一访问控制的系统、方法以及设备的实施已经使用特定于结构特征和/或方法的语言来描述,应理解的是所附权利要求不限于所描述的特定特征或方法。更确切地说,所述特定特征和方法是作为联合数据库统一访问控制的系统、方法以及设备的实施的示例来公开的。

Claims (30)

1.一种向联合数据库中存储的数据提供统一访问控制的访问控制系统,其特征在于,包括:
至少一个中央访问控制器,用于:
接收至少一个生成的查询计划;
通过至少一个用户权限、所述查询计划中的表和所述查询计划中相关联的列来检验所述生成的查询计划,所述至少一个用户权限预先存储在至少一个中央授权元数据表中;
若预先存储的所述用户权限允许访问已检验的查询计划,更新所述生成的查询计划,其中,若所述预先存储的用户权限对在接收的所述生成的查询计划中的所有列和/或所有行具有访问限制,则更新所述生成的查询计划;
将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;
至少一个查询执行器,用于执行所述物理查询,以返回至少一个结果。
2.根据权利要求1所述的访问控制系统,其特征在于,若对所述查询计划包括的至少一个表和/或列的访问受到限制,放弃所述查询计划。
3.根据权利要求1或2所述的访问控制系统,其特征在于,所述中央访问控制器还用于:
将至少一个受限列从所述生成的查询计划中移除,以更新所述生成的查询计划,具体地,若基于接收到的联合查询而生成的查询计划包含星号,则移除所述受限列;和/或
添加至少一个过滤器将至少一个受限行从所述生成的查询计划中排除,以更新所述生成的查询计划;和/或
若所述查询包括至少一个受限表和/或至少一个受限列以更新所述生成的查询计划,放弃所述接收到的联合查询。
4.根据权利要求1所述的访问控制系统,其特征在于,所述中央访问控制器还用于:将所述用户权限存储在所述中央授权元数据表中,其中,所述中央授权元数据表通过访问所述数据库的至少一个用户保存与访问所述联合查询中接收的表关联信息相关联的信息。
5.根据权利要求1所述的访问控制系统,其特征在于,所述中央授权元数据表存储与位于所述数据库中的至少一个表相关联的至少一个表级别控制、列级别控制、行级别控制、记录级别控制、或者上述四种的任意组合。
6.根据权利要求5所述的访问控制系统,其特征在于,所述中央授权元数据表在逻辑上与所述数据库中的至少一个联合元数据相关联。
7.根据权利要求1所述的访问控制系统,其特征在于,所述查询计划为与授权命令相关联的授权命令计划,或者为与传统查询相关联的普通查询计划,或者为所述授权命令计划和所述普通查询计划的组合。
8.根据权利要求7所述的访问控制系统,其特征在于,若所述查询计划为授权查询计划,所述中央访问控制器还用于:根据与所述接收到的授权查询计划相关联的至少一条信息更新中央授权元数据。
9.根据权利要求1所述的访问控制系统,其特征在于,所述中央访问控制器还包括至少一个联合访问检查器,所述联合访问检查器用于:验证对所述查询计划中的所述表、和/或所述列、和/或所述行的访问。
10.根据权利要求1所述的访问控制系统,其特征在于,所述中央访问控制器还包括从联合表验证器、列验证器、行验证器、和三者的任意组合中选出的至少一个验证器;若所述查询计划为普通查询计划,所述验证器用于通过至少一个联合访问检查器验证对所述查询计划中的所述表、和/或所述列、和/或所述行的访问。
11.根据权利要求1所述的访问控制系统,其特征在于,所述中央访问控制器还包括至少一个联合访问检查器,所述联合访问检查器用于:
检验从所述接收到的查询计划中提取的表是否包括用户访问限制,其中,所述访问是通过中央授权元数据来检验的;
若用户访问没有受到限制,从所述查询计划中提取至少一个列;
检验所述用户对所述列的访问是否受到限制;如果所述用户对所述列的访问没有受到限制,检验所述用户对所述列中的至少一行的访问是否受到限制;
若行受到限制,添加至少一个过滤器排除所述受限行,由此更新所述接收到的查询计划以执行所述更新的查询计划;或者
若行没有受到限制,更新所述接收到的查询计划以执行所述更新的查询计划。
12.一种访问控制系统向联合数据库中存储的数据提供统一访问控制的方法,其特征在于,所述方法包括:
接收至少一个生成的查询计划;
通过至少一个用户权限、所述查询计划中的表和所述查询计划中相关联的列来检验所述生成的查询计划,所述至少一个用户权限预先存储在至少一个中央授权元数据表中;
若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划,其中,若所述预先存储的用户权限对在所述生成的查询计划中接收的所有列和/或所有行具有访问限制,则更新所述生成的查询计划;
将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;
执行所述物理查询,以返回至少一个结果。
13.根据权利要求12所述的方法,其特征在于,还包括:若对至少一个表和/或列的访问受到限制,放弃接收到的联合查询。
14.根据权利要求12或13所述的方法,其特征在于,进一步包括:
将至少一个受限列从所述生成的查询计划中移除,以更新所述生成的查询计划,具体地,若基于所述接收到的联合查询而生成的查询计划包含星号系统,则移除所述受限列;和/或
添加至少一个过滤器将至少一个受限行从所述生成的查询计划中排除,以更新所述生成的查询计划;和/或
若所述查询包括至少一个受限表和/或至少一个受限列以更新所述生成的查询计划,放弃所述接收到的联合查询。
15.根据权利要求12所述的方法,其特征在于,进一步包括:将所述用户权限存储在所述中央授权元数据表中,其中,所述中央授权元数据表通过访问所述数据库的至少一个用户保存与访问所述联合查询中接收的表关联信息相关联的信息。
16.根据权利要求12所述的方法,其特征在于,所述中央授权元数据表存储与位于所述数据库中的至少一个表相关联的至少一个表级别控制、列级别控制、行级别控制、记录级别控制、或者上述四种的任意组合。
17.根据权利要求12所述的方法,其特征在于,进一步包括:在逻辑上将所述中央授权元数据表与所述数据库中的至少一个联合元数据相关联。
18.根据权利要求12所述的方法,其特征在于,所述查询计划为与授权命令相关联的授权命令计划,或者为与传统查询相关联的普通查询计划,或者为所述授权命令计划和所述普通查询计划的组合。
19.根据权利要求18所述的方法,其特征在于,若所述查询计划为授权查询计划,中央访问控制器还用于:根据与所述接收到的授权查询计划相关联的至少一条信息更新中央授权元数据。
20.根据权利要求12所述的方法,其特征在于,进一步包括:通过至少一个联合访问检查器验证对联合查询中的表、和/或列、和/或行的访问。
21.根据权利要求19所述的方法,其特征在于,若所述查询计划为普通查询计划,所述方法还包括:通过从联合表验证器、列验证器、行验证器、和三者的任意组合中选出的至少一个验证器以及至少一个联合访问检查器验证对所述联合查询中的所述表、和/或所述列、和/或所述行的访问。
22.根据权利要求12所述的方法,其特征在于,进一步包括:
检验从所述接收到的查询计划中提取的表是否包括用户访问限制,其中,所述访问是通过中央授权元数据来检验的;
若用户访问没有受到限制,从所述查询计划中提取至少一个列;
检验所述用户对所述列的访问是否受到限制;如果所述用户对所述列的访问没有受到限制,检验所述用户对所述列中的至少一行的访问是否受到限制;
若行受到限制,添加至少一个过滤器排除所述受限行,由此更新所述接收到的查询计划以执行所述更新的查询计划;或者
若行没有受到限制,更新所述接收到的查询计划以执行所述更新的查询计划。
23.一种向联合数据库中存储的数据提供统一访问控制的方法,其特征在于,所述方法包括:
接收至少一个联合查询;
解析所述接收到的联合查询以从所述联合查询中获取至少一条表关联信息,其中,所述表关联信息包括至少一个表名和至少一个相关联的列名;
通过至少一个联合元数据验证所述获取的表关联信息,以识别至少一个数据库中的至少一个表;
基于所述表关联信息并利用所述识别的表生成至少一个查询计划;
通过表、相关联的列、以及预先存储在至少一个中央授权元数据表中的至少一个用户权限来检验基于所述表关联信息生成的所述查询计划;
若所述预先存储的用户权限允许访问所述识别的表关联信息,更新所述生成的查询计划,其中,若所述预先存储的用户权限对在所述生成的查询计划中接收的所有列和/或所有行具有访问限制,则更新所述生成的查询计划;
将所述更新的查询计划转换为至少一个物理查询,以使所述数据库执行所述至少一个物理查询;
执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
24.根据权利要求23所述的方法,其特征在于,所述更新所述生成的查询计划进一步包括:
将至少一个受限列从所述生成的查询计划中移除,具体地,若基于所述接收到的联合查询而生成的查询计划包含星号系统,则移除所述受限列;和/或
添加至少一个过滤器将至少一个受限行从所述生成的查询计划中排除;和/或
若所述查询包括至少一个受限表和/或至少一个受限列以更新所述生成的查询计划,放弃所述接收到的联合查询。
25.根据权利要求23所述的方法,其特征在于,进一步包括:
将所述用户权限存储在所述中央授权元数据表中,其中,所述中央授权元数据表通过访问所述数据库的至少一个用户保存与访问所述表关联信息相关联的信息。
26.根据权利要求23所述的方法,其特征在于,所述中央授权元数据表存储与位于所述数据库中的所述表相关联的至少一个表级别控制、列级别控制、行级别控制、记录级别控制、或者上述四种的任意组合。
27.根据权利要求23所述的方法,其特征在于,进一步包括:在逻辑上将所述中央授权元数据表与所述数据库中的至少一个联合元数据相关联。
28.一种向联合数据库中存储的数据提供统一访问控制的联合系统,其特征在于,包括:
至少一个查询解析器,用于:
接收至少一个联合查询;
解析所述接收到的联合查询以从所述联合查询中获取至少一条表关联信息,其中,所述表关联信息包括至少一个表名和至少一个相关联的列名;
通过至少一个预先存储的联合元数据验证所述获取的表关联信息,以识别至少一个数据库中的至少一个表;
至少一个查询规划器,用于:
基于所述表关联信息并利用所述识别的表生成至少一个查询计划;
至少一个中央访问控制器,用于:
通过表、相关联的列、以及预先存储在至少一个中央授权元数据表中的至少一个用户权限来检验基于所述表关联信息生成的所述查询计划;
若所述预先存储的用户权限允许访问所述识别的表关联信息,更新所述生成的查询计划,其中,若所述预先存储的用户权限对在所述生成的查询计划中接收的所有列和/或所有行具有访问限制,则更新所述生成的查询计划;
至少一个物理查询生成器,用于:
将所述更新的查询计划转换为至少一个物理查询,以使所述数据库执行所述至少一个物理查询;
至少一个执行器,用于:
执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
29.一种向联合数据库中存储的数据提供统一访问控制的设备,其特征在于,所述设备包括:
处理器,与存储器相耦合,以执行所述存储器中的多个模块,其中,所述处理器执行所述多个模块以用于:
接收至少一个生成的查询计划;
通过至少一个用户权限、所述查询计划中的表和所述查询计划中相关联的列来检验所述生成的查询计划,所述至少一个用户权限预先存储在至少一个中央授权元数据表中;
若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划,其中,若所述预先存储的用户权限对在所述生成的查询计划中接收的所有列和/或所有行具有访问限制,则更新所述生成的查询计划;
将所述更新的查询计划转换为至少一个物理查询,以使至少一个数据库执行所述至少一个物理查询;
执行所述物理查询,以返回所述接收到的联合查询的至少一个结果。
30.一种包括处理器的联合系统,其特征在于,所述处理器与存储器相耦合,以执行所述存储器中的多个模块,其中,所述处理器执行所述多个模块以用于:
通过将查询计划中的至少一个表名和至少一个相关联的列名与预先存储在至少一个中央授权元数据表中的至少一个用户权限相比较来检验至少一个生成的查询计划;
若所述预先存储的用户权限允许访问所述已检验的查询计划,更新所述生成的查询计划,其中,若所述预先存储的用户权限对在所述生成的查询计划中接收的所有列和/或所有行具有访问限制,则更新所述生成的查询计划;
执行所述更新的查询计划,以返回至少一个结果。
CN201780006187.8A 2016-02-19 2017-02-03 一种联合数据库统一访问控制的系统、方法和设备 Active CN108475288B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201641005870 2016-02-19
IN201641005870 2016-02-19
PCT/CN2017/072859 WO2017140213A1 (en) 2016-02-19 2017-02-03 System, method, and device for unified access control on federated database

Publications (2)

Publication Number Publication Date
CN108475288A true CN108475288A (zh) 2018-08-31
CN108475288B CN108475288B (zh) 2022-03-29

Family

ID=59624754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780006187.8A Active CN108475288B (zh) 2016-02-19 2017-02-03 一种联合数据库统一访问控制的系统、方法和设备

Country Status (4)

Country Link
US (1) US20180357444A1 (zh)
EP (1) EP3398091B1 (zh)
CN (1) CN108475288B (zh)
WO (1) WO2017140213A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401395A (zh) * 2019-01-02 2020-07-10 中国移动通信有限公司研究院 一种数据处理方法、终端设备及存储介质
CN112306996A (zh) * 2020-11-16 2021-02-02 天津南大通用数据技术股份有限公司 一种实现多集群间联合查询和快速数据迁移的方法
CN116472527A (zh) * 2020-11-16 2023-07-21 斯诺弗雷克公司 用于控制数据库系统中的信息访问的受限视图

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831917B2 (en) 2018-10-29 2020-11-10 At&T Intellectual Property I, L.P. Database system consensus-based access control
JP2020126409A (ja) * 2019-02-04 2020-08-20 株式会社日立製作所 データ管理システムおよびデータ管理方法
WO2021034329A1 (en) * 2019-08-22 2021-02-25 Futurewei Technologies, Inc. Data set signatures for data impact driven storage management
EP3828728A1 (en) * 2019-11-29 2021-06-02 Amadeus S.A.S. System and method of differential access control of shared data
US11709952B2 (en) 2019-11-29 2023-07-25 Amadeus S.A.S. System and method of differential access control of shared data
FR3103916B1 (fr) * 2019-11-29 2022-07-22 Amadeus Sas Système et procédé de contrôle d’accès différentiel de données partagées
US11372995B2 (en) * 2020-01-17 2022-06-28 Snowflake Inc. Container-centric access control on database objects
US11514186B2 (en) * 2021-04-14 2022-11-29 Sap Se Integrated database user privilege management
US20230129994A1 (en) * 2021-10-27 2023-04-27 Bank Of America Corporation System and Method for Transpilation of Machine Interpretable Languages
US11934543B1 (en) 2022-11-17 2024-03-19 Snowflake Inc. Transient object references

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276123A (zh) * 1997-10-13 2000-12-06 艾克斯-伟瑞茨公司 面向对象的点到点通信的方法及实施该方法的通信设备
CN1711536A (zh) * 2002-10-03 2005-12-21 古格公司 基于相关词的聚类描述文档的方法和装置
US20070003042A1 (en) * 2005-06-21 2007-01-04 Sbc Knowledge Ventures L.P. Method and apparatus for proper routing of customers
US7216126B2 (en) * 2000-06-21 2007-05-08 International Business Machines Corporation System and method for RDBMS to protect records in accordance with non-RDBMS access control rules
CN101056175A (zh) * 2007-04-26 2007-10-17 华为技术有限公司 磁盘阵列及其访问权限控制方法与装置、服务器及服务器系统
CN101075254A (zh) * 2007-06-08 2007-11-21 北京神舟航天软件技术有限公司 数据库表行级数据的自主访问控制方法
CN102365554A (zh) * 2009-01-28 2012-02-29 海德沃特合作I有限公司 具有网络中立性和用户隐私的基于网络的服务策略实现
CN102694715A (zh) * 2011-03-22 2012-09-26 中兴通讯股份有限公司 一种授权请求状态信息的控制方法及系统
CN103577407A (zh) * 2012-07-19 2014-02-12 国际商业机器公司 用于分布式数据库的查询方法及查询装置
CN104471585A (zh) * 2012-06-05 2015-03-25 甲骨文国际公司 用于数据访问控制实施的基于sql转换的优化技术

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2548138B1 (en) 2010-03-15 2018-09-12 VMware, Inc. Computer relational database method and system having role based access control
US9286475B2 (en) * 2012-02-21 2016-03-15 Xerox Corporation Systems and methods for enforcement of security profiles in multi-tenant database
CN105183735B (zh) 2014-06-18 2019-02-19 阿里巴巴集团控股有限公司 数据的查询方法及查询装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276123A (zh) * 1997-10-13 2000-12-06 艾克斯-伟瑞茨公司 面向对象的点到点通信的方法及实施该方法的通信设备
US7216126B2 (en) * 2000-06-21 2007-05-08 International Business Machines Corporation System and method for RDBMS to protect records in accordance with non-RDBMS access control rules
CN1711536A (zh) * 2002-10-03 2005-12-21 古格公司 基于相关词的聚类描述文档的方法和装置
US20070003042A1 (en) * 2005-06-21 2007-01-04 Sbc Knowledge Ventures L.P. Method and apparatus for proper routing of customers
CN101056175A (zh) * 2007-04-26 2007-10-17 华为技术有限公司 磁盘阵列及其访问权限控制方法与装置、服务器及服务器系统
CN101075254A (zh) * 2007-06-08 2007-11-21 北京神舟航天软件技术有限公司 数据库表行级数据的自主访问控制方法
CN102365554A (zh) * 2009-01-28 2012-02-29 海德沃特合作I有限公司 具有网络中立性和用户隐私的基于网络的服务策略实现
CN102694715A (zh) * 2011-03-22 2012-09-26 中兴通讯股份有限公司 一种授权请求状态信息的控制方法及系统
CN104471585A (zh) * 2012-06-05 2015-03-25 甲骨文国际公司 用于数据访问控制实施的基于sql转换的优化技术
CN103577407A (zh) * 2012-07-19 2014-02-12 国际商业机器公司 用于分布式数据库的查询方法及查询装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡红清: "关系数据库基于目的的访问控制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401395A (zh) * 2019-01-02 2020-07-10 中国移动通信有限公司研究院 一种数据处理方法、终端设备及存储介质
CN111401395B (zh) * 2019-01-02 2023-05-09 中国移动通信有限公司研究院 一种数据处理方法、终端设备及存储介质
CN112306996A (zh) * 2020-11-16 2021-02-02 天津南大通用数据技术股份有限公司 一种实现多集群间联合查询和快速数据迁移的方法
CN116472527A (zh) * 2020-11-16 2023-07-21 斯诺弗雷克公司 用于控制数据库系统中的信息访问的受限视图

Also Published As

Publication number Publication date
EP3398091A1 (en) 2018-11-07
WO2017140213A1 (en) 2017-08-24
US20180357444A1 (en) 2018-12-13
EP3398091A4 (en) 2018-11-07
CN108475288B (zh) 2022-03-29
EP3398091B1 (en) 2022-05-11

Similar Documents

Publication Publication Date Title
CN108475288A (zh) 一种联合数据库统一访问控制的系统、方法和设备
CN104866513B (zh) 用于跨租户数据访问的系统和方法
CN101111840B (zh) 用于在数据库管理系统中为文件操作提供锁定的技术
CN100527129C (zh) 用于由数据库服务器执行文件操作的基础结构
CN109565511A (zh) 用于多租户身份和数据安全管理云服务的租户和服务管理
US7206789B2 (en) System and method for defining and collecting data in an information management system having a shared database
US7720863B2 (en) Security view-based, external enforcement of business application security rules
US8533229B2 (en) Soap-based web services in a multi-tenant database system
WO2022020284A1 (en) Security platform and method for efficient access and discovery
CN108701182A (zh) 多租户身份云服务的数据管理
EP3215976B1 (en) Database security
US20050160104A1 (en) System and method for generating and deploying a software application
US20050267901A1 (en) Distributed single schema data modeling system and method
EP3095066B1 (en) Compartment-based data security
US20050091179A1 (en) Collaborative design process
US20180173886A1 (en) Collaborative Database to Promote Data Sharing, Synchronization, and Access Control
Millar et al. dCache, agile adoption of storage technology
Masood-Al-Farooq SQL Server 2014 Development Essentials
US7818713B2 (en) Method, system and program product for generating requirement relationships for designing a solution
CN102160029A (zh) 数据中心的软件变更管理、配置替换和远程管理
WO2022178421A1 (en) Method and apparatus for decentralized management of trusted data on trustless networks
SPS SAP HANA Administration Guide
CN110677404B (zh) 用于Linux主机的用户访问的控制方法
WO2009068433A1 (en) Dependent membership for collaborative applications in a portal server infrastructure
Lobel et al. Microsoft Azure SQL Database Step by Step

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