CN111723401A - 数据访问权限控制方法、装置、系统、存储介质及设备 - Google Patents
数据访问权限控制方法、装置、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN111723401A CN111723401A CN202010553781.2A CN202010553781A CN111723401A CN 111723401 A CN111723401 A CN 111723401A CN 202010553781 A CN202010553781 A CN 202010553781A CN 111723401 A CN111723401 A CN 111723401A
- Authority
- CN
- China
- Prior art keywords
- information
- user
- data
- request
- authority
- 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.)
- Pending
Links
Images
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
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
本申请提供一种数据访问权限控制方法、装置、系统、存储介质及设备,方法应用于对数据管理系统的访问进行辅助的Hive,数据管理系统包括权限模块,方法包括:接收对数据管理系统的数据查询请求;确定出数据查询请求对应的请求权限信息和用户身份信息;向权限模块发送身份查询请求,以验证用户身份信息对应的用户是否具有与请求权限信息匹配的访问权限。通过在数据管理系统中设置权限模块,在利用Hive对数据管理系统进行访问前,对用户的访问权限进行验证,能够有效保护数据的安全。并且,针对性地设置权限模块,不用考虑数据管理系统与分布式存储系统的用户对接问题。另外,利用Hive实现这种权限控制方法,几乎不会存在服务器负载大,稳定性不足等问题。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据访问权限控制方法、装置、系统、存储介质及设备。
背景技术
Hive(蜂巢,一种基于大数据分布式存储系统的数据仓库工具)是一个由Facebook(脸书)开源,基于Hadoop(一种分布式系统基础架构)系统的用于解决海量结构化日志的数据统计的数据仓库工具。在底层,Hive使用HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)进行存储并将结构化数据文件映射成一张表,并提供类SQL(Structured Query Language,结构化查询语言)查询的功能,本质是将HQL(HibernateQuery Language,Hibernate查询语言,Hive所使用的一种类SQL查询语言)转化成MR(MapReduce,映射-规约,Hadoop所采用的一种计算模型,用于大规模数据集的并行运算的编程模型)程序,在其底层采用MR进行计算。
Hive的数据存储在HDFS中,大部分的查询、计算由映射-规约完成(但其中包含*的查询,例如“select*from tbl”不会生成映射-规约任务),描述Hive数据的数据被称为Hive的元数据。Hive将元数据存储在数据库中,例如MySQL、Derby等数据库。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
在Hive使用过程中,出于数据规范与数据安全的角度考虑,非管理员的Hive使用者在使用Hive的过程中执行的操作应当加以限制。若任何Hive使用者都可以在使用Hive时查看所有数据,那么所有的数据信息便毫不设防地暴露在所有的Hive使用者面前,不利于保护数据的安全。因此,需要从数据的访问权限方面加以限制,对不同用户开放不同的权限,以尽可能保证数据安全。
在对Hive使用者的数据访问权限的限制中,目前主要为以下几种方式:
采用Hive原生权限控制的方式:Hive内部有自身原生的权限控制系统,1.0.X版本的Hive对表权限控制基于Linux(一套免费使用和自由传播的多用户、多任务、支持多线程和多CPU的操作系统,CPU表示Central Processing Unit,计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元)的用户和用户组权限。2.0.X版本的Hive可以针对表的Create(创建)、Select(选取)、Truncate(删减)、Drop(删除)等操作权限进行控制。由于该方案源于Hive原生,不需要额外安装其他系统、模块,仅在Hive-site.xml配置文件中添加对应配置信息,即可通过HQL为用户添加各类权限。
这种方式在一定程度上满足了管理员对Hive使用权限的控制需求,但存在这样的缺陷:首先,由于该部分基于Linux系统用户提供权限控制服务,在大型分布式数据管理系统中,不同服务器上的用户及其用户组各不相同,很难给出一个统一的、规范化的权限控制方案来。其次,即使为Linux系统用户添加了权限控制,这个用户的含义也与数据管理系统自身的用户含义不同,无法实现为数据管理系统用户添加权限控制的目的。
另外,也可以采用Apache Ranger(游侠,一个应用在Hadoop平台上并提供操作、监控、管理综合数据安全的框架)进行权限控制的方式:Apache Ranger提供一个集中式安全管理框架,它可以对Hadoop生态的组件如HDFS、YARN(Yet Another Resource Negotiator,另一种资源协调者)、Hive、Hbase(一个开源的非关系型分布式数据库)等进行细粒度的数据访问控制并提供数据审计日志。通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问权限。管理员安装好Ranger后便可在Ranger控制台为Linux用户进行各组件的权限配置,Ranger权限配置信息存储在底层关系型数据库中。此外,管理员也可调用Ranger API(Application Programming Interface,应用程序接口),通过API来进行权限信息的配置。
但这种方式同样存在与Hive原生权限控制相似的缺陷:即对Linux用户的权限配置与需求不符,不能满足给数据管理系统用户配置权限的要求。也因为这个原因,Ranger权限控制中的用户系统与数据管理系统的用户系统对接困难。此外,Ranger不够轻量级,数据管理系统运行时还需同步启用Ranger系统,执行某些操作时,服务器负载较大,稳定性不足。
因此,如何很好地对使用Hive进行数据访问时的访问权限进行限制,是本领域中的一个难题。
发明内容
本申请实施例的目的在于提供一种数据访问权限控制方法、装置、系统、存储介质及设备,对使用Hive进行数据访问时的访问权限进行限制。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种数据访问权限控制方法,应用于对数据管理系统的访问进行辅助的Hive,所述数据管理系统包括权限模块,所述方法包括:接收对所述数据管理系统的数据查询请求;确定出所述数据查询请求对应的请求权限信息和用户身份信息;向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
通过在数据管理系统中设置权限模块,在利用Hive对数据管理系统进行访问前,先确定出数据查询请求对应的请求权限信息和用户身份信息,并验证用户身份信息对应的用户是否具有与请求权限信息匹配的访问权限,从而可以在对数据管理系统进行访问前,对用户的访问权限进行验证,能够有效保护数据的安全性。并且,针对性地设置权限模块,可以使得用户对数据管理系统的访问权限与分布式存储系统(例如Hadoop系统)的用户权限相区别,不用考虑两者的用户对接问题,也可以方便设置用户对数据管理系统的访问权限。另外,利用Hive实现这种权限控制方法,具有轻量级的优点,几乎不会存在服务器负载大,稳定性不足等问题。
结合第一方面,在第一方面的第一种可能的实现方式中,所述确定出所述数据查询请求对应的请求权限信息和用户身份信息,包括:调用Metastore-filter-hook对所述数据查询请求进行过滤,确定出对应的请求权限信息和用户身份信息。
在利用Hive对数据管理系统的数据进行访问时,传统的运行流程为:Hive接收数据查询请求后,即将该数据查询请求发送给数据管理系统,以获取对应的数据。而通过将数据查询请求拦截,利用Metastore-filter-hook对数据查询请求进行过滤,获取对应的请求权限信息和用户身份信息,有利于在数据访问前对用户的访问权限进行验证,保证数据的安全性。
结合第一方面,在第一方面的第二种可能的实现方式中,所述向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限,包括:将包含所述用户身份信息和所述请求权限信息的身份查询请求发送给所述权限模块;接收所述权限模块基于对所述用户身份信息和所述请求权限信息的权限验证后返回的验证结果,其中,所述验证结果用于表征所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
通过将包含用户身份信息和请求权限信息的身份查询请求发送给权限模块,接收权限模块进行权限验证后返回的验证结果,可以高效准确地对用户的访问权限进行验证。
结合第一方面,在第一方面的第三种可能的实现方式中,所述向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限,包括:将包含所述用户身份信息的身份查询请求发送给所述权限模块;接收所述权限模块返回的与所述用户身份信息匹配的用户权限信息;将所述请求权限信息与所述用户权限信息进行匹配,确定所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的权限。
通过将包含用户身份信息的身份查询请求发送给权限模块,并接收返回的与用户身份信息匹配的用户权限信息,以将请求权限信息与用户权限信息进行匹配,验证用户的访问权限(验证过程由Hive执行),在高效准确地验证用户的访问权限的同时,也可以有效地减轻数据管理系统的运行压力。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,数据管理系统的权限包括访问数据库的数据库权限和访问数据表的数据表权限,对应的,所述请求权限信息包括数据库请求权限信息和数据表请求权限信息,所述用户权限信息包括数据库用户权限信息和数据表用户权限信息,所述将所述请求权限信息与所述用户权限信息进行匹配,确定所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的权限,包括:将所述数据库请求权限信息与所述数据库用户权限信息匹配,以及,将所述数据表请求权限信息与所述数据表用户权限信息匹配;在所述数据库请求权限信息与所述数据库用户权限信息相互匹配,且所述数据表请求权限信息与所述数据表用户权限信息相互匹配时,确定所述用户身份信息对应的用户具有与所述请求权限信息匹配的权限。
在数据库请求权限信息与数据库用户权限信息相互匹配,且数据表请求权限信息与数据表用户权限信息相互匹配时,确定用户身份信息对应的用户具有与请求权限信息匹配的权限,可以有效地对用户的访问权限进行精准的验证,从而有利于进一步提高数据的安全性。
结合第一方面,或者结合第一方面的第一种至第四种中任一可能的实现方式,在第一方面的第五种可能的实现方式中,在所述向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限之后,所述方法还包括:在所述用户身份信息对应的用户不具有与所述请求权限信息匹配的访问权限时,返回提示无权访问的信息;在所述用户身份信息对应的用户具有与所述请求权限信息匹配的访问权限时,执行所述数据查询请求,并返回查询结果。
在验证用户的访问权限后,执行对应的动作(返回无访问权限的信息或者进行数据查询后返回查询结果),从而能够实现利用Hive访问数据管理系统时的对访问权限的控制,有利于保证数据的安全性。
第二方面,本申请实施例提供一种数据访问权限控制装置,应用于对数据管理系统的访问进行辅助的Hive中,所述数据管理系统包括权限模块,所述装置包括:接收单元,用于接收对所述数据管理系统的数据查询请求;确定单元,用于确定出所述数据查询请求对应的请求权限信息和用户身份信息;验证单元,用于向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
第三方面,本申请实施例提供一种数据访问权限控制系统,包括数据管理系统和对所述数据管理系统的访问进行辅助的Hive,数据管理系统包括权限模块、用户模块和数据开发模块,所述用户模块,用于向数据开发模块发送所述数据查询请求;所述数据开发模块,用于将所述数据查询请求保存后发送给Hive;Hive,用于基于接收的所述数据查询请求结合所述权限模块,运行第一方面或第一方面可能的实现方式中任一项所述的数据访问权限控制方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面或第一方面可能的实现方式中任一项所述的数据访问权限控制方法的步骤。
第五方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现第一方面或第一方面可能的实现方式中任一项所述的数据访问权限控制方法的步骤。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种数据访问权限控制系统的运行示意图。
图2为本申请实施例提供的一种数据访问权限控制方法的流程图。
图3为本申请实施例提供的一种数据访问权限控制装置的流程图。
图4为本申请实施例提供的一种电子设备的结构框图。
图标:10-数据访问权限控制系统;11-数据管理系统;111-用户模块;112-数据开发模块;113-权限模块;12-Hive;20-数据访问权限控制装置;21-接收单元;22-确定单元;23-验证单元;30-电子设备;31-存储器;32-通信模块;33-总线;34-处理器。
具体实施方式
为了给数据管理系统提供一个良好的权限控制方案,本申请实施例可以在Hivehook(蜂巢钩子,在Hive的任务处理过程中拦截事件、消息或函数调用的一种机制或手段)的基础上实现针对Hive内数据的权限管理(即对数据管理系统的权限的管理)。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了便于对本申请实施例提供的数据访问权限控制方法的理解,在对数据访问权限控制方法进行介绍前,此处先对数据访问权限控制系统10的运行方式进行介绍,而在对数据访问权限控制系统10的运行方式进行介绍的过程中,可以对Hive运行数据访问权限控制方法的过程进行详细介绍。
请参阅图1,图1为本申请实施例提供的一种数据访问权限控制系统10的运行示意图。在本实施例中,数据访问权限控制系统10可以包括数据管理系统11和Hive12(12为Hive的标号,为了避免不必要的混淆,后文将省略Hive的标号),Hive可以与数据管理系统11配合运行,对数据管理系统11的数据进行访问。需要说明的是,本申请实施例中的数据管理系统11可以表示系统内的文件系统(例如HDFS,即Hadoop系统内的文件系统),但不作为限定。
在本实施例中,Hive与数据管理系统11配合运行的方式,示例性的,可以为:用户可以通过用户终端向数据管理系统发送数据查询请求,而数据管理系统可以将数据查询请求发送给Hive;Hive接收到数据查询请求后,可以运行本申请实施例提供的数据访问权限控制方法,以实现对数据管理系统的访问权限控制。
示例性的,数据管理系统11可以包括用户模块111、数据开发模块112和权限模块113,但不限定于此(例如可以不包括数据开发模块112、可以不包括用户模块111,或者可以包括其他的模块,用于实现对应的功能,此处不作限定)。以下,将以包括用户模块111、数据开发模块112和权限模块113的数据管理系统11与Hive配合运行的方式为例,对本申请实施例提供的数据访问权限控制系统的运行进行详细介绍。
在本实施例中,用户要对数据管理系统11的数据进行访问,可以登录数据管理系统11。而数据管理系统11中的用户模块111可以接收用户的登录请求,并验证用户的登录信息。通过这样的方式可以控制数据管理系统11的登录权限,避免非法用户的访问,提升数据管理系统11中数据的安全性。
在用户模块111验证用户的合法身份接受用户的登录后,用户模块111可以接收用户的数据查询请求,其中,数据查询请求基于用户为满足查询需求进行对应的操作而生成。在本实施例中,数据查询请求中可以包括请求权限信息和用户身份信息,也可以不包括用户身份信息,此处不作限定。
在用户模块111接收用户的数据查询请求后,用户模块111可以将数据查询请求发送给数据开发模块112。而为了尽可能保证数据管理系统11中数据的安全,数据开发模块112可以对数据的访问情况(例如用户的数据查询请求、数据查询结果等信息)进行记录,在数据管理系统11的数据访问发生安全事件(例如数据泄露、数据的跨权限访问等)后,也可以根据记录的访问情况,快速排查出嫌疑人,从而有利于及时制止此类事件。另外,记录的访问情况也有利于后续对数据访问权限控制系统10的运行过程的优化。
在数据开发模块112将用户的数据查询请求记录后,可以将数据查询请求发送给Hive。而Hive则可以运行本申请实施例提供的数据访问权限控制方法。
请参阅图2,图2为本申请实施例提供的一种数据访问权限控制方法的流程图。在本实施例中,数据访问权限控制方法可以包括步骤S10、步骤S20和步骤S30。
在数据开发模块112将用户的数据查询请求发送给Hive后,Hive可以执行步骤S10。
步骤S10:接收对所述数据管理系统的数据查询请求。
在本实施例中,Hive可以接收对数据管理系统的数据查询请求。需要说明的是,Hive可以辅助对数据管理系统的访问,以便快速准确地查询数据库中的数据、信息等。
在接收数据查询请求后,Hive可以执行步骤S20。
步骤S20:确定出所述数据查询请求对应的请求权限信息和用户身份信息。
由于在Hive辅助对数据管理系统的访问过程中,需要查看Hive的元数据,其中,Hive的元数据表示描述Hive数据的数据,即数据查询请求中包含的对数据管理系统进行访问的数据,例如,数据管理系统中存储数据的表的名称、表的列和分区及分区的属性、表的属性(是否为外部表等)、表的数据所在目录等。以及,Hive可以将元数据存储在数据库中,例如MySQL、Derby等数据库。而Hive中的Hivehook则可以在Hive的运行中拦截事件、消息或函数调用。
因此,Hive可以在接收到数据查询请求,拟根据数据查询请求在数据管理系统中进行数据查询、访问等操作时,利用Hivehook拦截数据查询请求,以及根据数据查询请求在数据管理系统中进行数据查询、访问等操作。
示例性的,可以在调用Hive内的数据(Hive内的数据,即数据管理系统的数据)的过程中,且查看Hive的元数据时,调用Metastore-filter-hook(Hivehook中的一种,用于过滤Hive的元数据的调用结果),实现对Hive的元数据调用结果的过滤。
具体的,Hive可以调用Metastore-pre-event-listener(Hivehook中的一种,用于监控元数据时间、拦截元数据操作等)拦截数据查询请求。以及,Hive可以调用Metastore-filter-hook对数据查询请求进行过滤,确定出对应的请求权限信息和用户身份信息。其中,请求权限信息可以包括数据库请求权限信息和数据表请求权限信息,但不作为限定(例如,可以不包括数据表请求权限信息,也可以包括更多其他的、更精细的请求权限信息等)。另外,此处介绍的是数据查询请求中包括用户身份信息和请求权限信息的情况,而在数据查询请求中不包括用户身份信息时,Hive对数据查询请求进行过滤所得到的信息中可以不包括用户身份信息,而Hive可以采用其他方式确定出用户身份信息,例如,向用户模块发送请求以获取用户身份信息。因此,此处不应视为对本申请的限定。
利用Metastore-filter-hook对数据查询请求进行过滤,获取对应的请求权限信息和用户身份信息,有利于在数据访问前对用户的访问权限进行验证,保证数据的安全性。
另外,从数据查询请求中确定出对应的请求权限信息和用户身份信息的方式,并不限定于此种方式,还可以采用其他的拦截手段和过滤手段,从数据查询请求中确定出请求权限信息和用户身份信息,此处不应视为对本申请的限定。
确定出数据查询请求对应的请求权限信息和用户身份信息后,Hive可以执行步骤S30。
步骤S30:向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
在本实施例中,验证用户身份信息对应的用户是否具有与请求权限信息匹配的访问权限(即,验证用户是否具有对拟查询的数据的访问权限)的方式,可以由Hive(例如Hive中的Hivehook)执行验证过程,也可以采用由数据管理系统中的权限模块执行验证的方式,此处不作具体限定。以下,将对这两种方式分别进行介绍,但验证用户是否具有对将要查询的数据的访问权限的方式并不限定于这两种。
示例性的,在由Hive执行验证过程的方式中,Hive可以将包含用户身份信息的身份查询请求发送给权限模块。而权限模块可以确定出与用户身份信息匹配的用户权限信息,并将确定出的用户权限信息返回给Hive。Hive可以接收权限模块返回的用户权限信息,并将请求权限信息与用户权限信息进行匹配,以确定用户身份信息对应的用户是否具有与请求权限信息匹配的权限。
通过将包含用户身份信息的身份查询请求发送给权限模块,并接收返回的与用户身份信息匹配的用户权限信息,以将请求权限信息与用户权限信息进行匹配,验证用户的访问权限(验证过程由Hive执行),在高效准确地验证用户的访问权限的同时,也可以有效地减轻数据管理系统的运行压力。
在本实施例中,数据管理系统的权限可以包括访问数据库的数据库权限和访问数据表的数据表权限。那么,对应的,请求权限信息可以包括数据库请求权限信息和数据表请求权限信息,而用户权限信息则可以包括数据库用户权限信息和数据表用户权限信息,其中,将请求权限信息与用户权限信息匹配,则可以为:将数据库请求权限信息与数据库用户权限信息匹配,将数据表请求权限信息与数据表用户权限信息匹配。
为了进一步提高数据的安全性,Hive可以在确定数据表请求权限信息与数据表用户权限信息相互匹配时,确定用户身份信息对应的用户具有与请求权限信息匹配的权限(此即验证结果)。而在其他情况下(例如,数据库请求权限信息与数据库用户权限信息相互匹配,但数据表请求权限信息与数据表用户权限信息不匹配;或者,数据库请求权限信息与数据库用户权限信息不匹配,且数据表请求权限信息与数据表用户权限信息不匹配),则可以确定用户身份信息对应的用户不具有与请求权限信息匹配的权限(此亦为验证结果)。
需要说明的是,本实施例中的数据库请求权限信息与数据库用户权限信息匹配,可以为:数据库用户权限信息包含数据库请求权限信息(即,数据库请求权限信息中用户请求查询的数据库为数据库用户权限信息中用户能够访问的数据库的部分或者全部);类似的,数据表请求权限信息与数据表用户权限信息匹配,可以为:数据表用户权限信息包含数据表请求权限信息(即,数据表请求权限信息中用户请求查询的数据表为数据表用户权限信息中用户能够访问的数据表的部分或者全部)。但此处匹配判定的方式不应视为对本申请的限定,可以根据实际需要进行设定。
在数据库请求权限信息与数据库用户权限信息相互匹配,且数据表请求权限信息与数据表用户权限信息相互匹配时,确定用户身份信息对应的用户具有与请求权限信息匹配的权限,可以有效地对用户的访问权限进行精准的验证,从而有利于进一步提高数据的安全性。
示例性的,在由数据管理系统的权限模块执行验证过程的方式中,Hive可以将包含用户身份信息和请求权限信息的身份查询请求(此处的身份查询请求可以与前文中由Hive执行验证过程的方式中的身份查询请求相区别:Hive执行验证过程的方式中身份查询请求可以包括用户身份信息而不包括请求权限信息;而由权限模块执行验证过程的方式中身份查询请求包括户身份信息和请求权限信息)发送给权限模块,以使权限模块基于身份查询请求中的用户身份信息和请求权限信息进行权限验证。
具体的,Hive可以根据用户身份信息和请求权限信息生成身份查询请求,并将生成的身份查询请求发送给权限模块。而权限模块可以接收包含用户身份信息和请求权限信息的身份查询请求,并根据用户身份信息从权限模块预设的用户权限信息中确定出用户身份信息对应的用户权限信息,并将确定出的用户权限信息与请求权限信息相匹配(匹配的过程和标准可以参阅Hive执行验证过程时的匹配过程和标准,此处不再赘述,但匹配的过程和标准不限定于此)。
另外,在数据管理系统的权限包括访问数据库的数据库权限和访问数据表的数据表权限时,数据库请求权限信息与数据库用户权限信息相互匹配的过程、数据表请求权限信息与数据表用户权限信息相互匹配的过程均可参阅前文中Hive执行验证过程时的匹配过程和标准,此处不再赘述。
例如,权限模块在将数据库请求权限信息与数据库用户权限信息进行匹配,且数据表请求权限信息与数据表用户权限信息匹配成功时,确定用户身份信息对应的用户具有与请求权限信息匹配的权限,即权限的验证结果为:用户身份信息对应的用户具有与请求权限信息匹配的访问权限。而在其他情况下(例如,数据库请求权限信息与数据库用户权限信息相互匹配,但数据表请求权限信息与数据表用户权限信息不匹配;或者,数据库请求权限信息与数据库用户权限信息不匹配,且数据表请求权限信息与数据表用户权限信息不匹配),确定用户身份信息对应的用户不具有与请求权限信息匹配的权限,即权限的验证结果为:用户身份信息对应的用户不具有与请求权限信息匹配的访问权限。
权限模块基于包含用户身份信息和请求权限信息的身份查询请求确定出验证结果后,可以将验证结果发送给Hive。而Hive可以接收权限模块返回的验证结果。
通过将包含用户身份信息和请求权限信息的身份查询请求发送给权限模块,接收权限模块进行权限验证后返回的验证结果,可以高效准确地对用户的访问权限进行验证。
在验证用户身份信息对应的用户是否具有与请求权限信息匹配的访问权限之后(即Hive得到验证结果后),Hive可以在用户身份信息对应的用户不具有与请求权限信息匹配的访问权限(即验证结果为用户不具有对应的访问权限)时,Hive可以向数据管理系统的数据开发模块返回提示无权访问的信息,以使数据开发模块向用户返回用于提示该用户无权访问该信息的提示消息,而数据开发模块也可以记录此次访问情况。以及,Hive可以在用户身份信息对应的用户具有与请求权限信息匹配的访问权限(即验证结果为用户具有对应的访问权限)时,执行数据查询请求,并将查询结果返回给数据管理系统的数据开发模块,以使数据开发模块将查询结果返回给该用户,而数据开发模块也可以记录此次的访问情况。
在验证用户的访问权限后,执行对应的动作(返回无访问权限的信息或者进行数据查询后返回查询结果),从而能够实现利用Hive访问数据管理系统时的对访问权限的控制,有利于保证数据的安全性。
当然,在其他一些可能的实现方式中,Hive还可以对查询结果进行筛选后返回给数据管理系统(的数据开发模块),以进一步提高数据管理系统中数据的安全性,此处不作限定。
需要说明的是,在本实施例中提到的数据开发模块、用户模块,均为示例性的,数据管理系统中也可以不包括这些模块,在不包括数据开发模块、用户模块等模块时,前文中述及这些模块执行的动作和步骤,皆可以由数据管理系统(或数据管理系统中的其他模块)执行,此处不应视为对本申请的限定。
请参阅图3,基于同一发明构思,本申请实施例中还提供一种数据访问权限控制装置20,应用于对数据管理系统的访问进行辅助的Hive中,所述数据管理系统包括权限模块,所述装置20包括:
接收单元21,用于接收对所述数据管理系统的数据查询请求。
确定单元22,用于确定出所述数据查询请求对应的请求权限信息和用户身份信息。
验证单元23,用于向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
在本实施例中,所述确定单元22,还用于调用Metastore-filter-hook对所述数据查询请求进行过滤,确定出对应的请求权限信息和用户身份信息。
在本实施例中,所述验证单元23,还用于将包含所述用户身份信息和所述请求权限信息的身份查询请求发送给所述权限模块;接收所述权限模块基于对所述用户身份信息和所述请求权限信息的权限验证后返回的验证结果,其中,所述验证结果用于表征所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
在本实施例中,所述验证单元23,还用于将包含所述用户身份信息的身份查询请求发送给所述权限模块;接收所述权限模块返回的与所述用户身份信息匹配的用户权限信息;将所述请求权限信息与所述用户权限信息进行匹配,确定所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的权限。
在本实施例中,数据管理系统的权限包括访问数据库的数据库权限和访问数据表的数据表权限,对应的,所述请求权限信息包括数据库请求权限信息和数据表请求权限信息,所述用户权限信息包括数据库用户权限信息和数据表用户权限信息,所述验证单元23,还用于将所述数据库请求权限信息与所述数据库用户权限信息匹配,以及,将所述数据表请求权限信息与所述数据表用户权限信息匹配;在所述数据库请求权限信息与所述数据库用户权限信息相互匹配,且所述数据表请求权限信息与所述数据表用户权限信息相互匹配时,确定所述用户身份信息对应的用户具有与所述请求权限信息匹配的权限。
在本实施例中,所述装置20还包括执行单元,用于在所述验证单元23向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限之后,在所述用户身份信息对应的用户不具有与所述请求权限信息匹配的访问权限时,返回提示无权访问的信息;在所述用户身份信息对应的用户具有与所述请求权限信息匹配的访问权限时,执行所述数据查询请求,并返回查询结果。
请参阅图4,图4为本申请实施例提供的一种电子设备30的结构框图。在本实施例中,电子设备30可以为服务器,在电子设备30为服务器时,可以为网络服务器、云服务器、多个服务器构成的服务器集群等;电子设备30也可以为终端,在电子设备30为终端时,可以为智能手机、平板电脑、个人电脑等,此处不作限定。
示例性的,电子设备30可以包括:通过网络与外界连接的通信模块32、用于执行程序指令的一个或多个处理器34、总线33、不同形式的存储器31,例如,磁盘、ROM(Read-OnlyMemory,只读存储器)、或RAM(Random Access Memory,随机存取存储器),或其任意组合。其中,存储器31、通信模块32和处理器34之间通过总线33连接。
示例性的,存储器31中存储有程序。处理器34可以从存储器31调用并运行这些程序,从而便可以通过运行程序而使数据访问权限控制系统执行其运行流程,以及/或者,使Hive执行数据访问权限控制方法。
本申请实施例还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本申请实施例所述的数据访问权限控制方法的步骤。
综上所述,本申请实施例提供一种数据访问权限控制方法、装置、系统、存储介质及设备,通过在数据管理系统中设置权限模块,在利用Hive对数据管理系统进行访问前,先确定出数据查询请求对应的请求权限信息和用户身份信息,并验证用户身份信息对应的用户是否具有与请求权限信息匹配的访问权限,从而可以在对数据管理系统进行访问前,对用户的访问权限进行验证,能够有效保护数据的安全性。并且,针对性地设置权限模块,可以使得用户对数据管理系统的访问权限与分布式存储系统(例如Hadoop系统)的用户权限相区别,不用考虑两者的用户对接问题,也可以方便设置用户对数据管理系统的访问权限。另外,利用Hive实现这种权限控制方法,具有轻量级的优点,几乎不会存在服务器负载大,稳定性不足等问题。另外,集成于数据管理系统内部的权限模块,与其他方案相比,耦合性更高,更易于管理员的操作和研发人员进一步的开发升级。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据访问权限控制方法,其特征在于,应用于对数据管理系统的访问进行辅助的Hive,所述数据管理系统包括权限模块,所述方法包括:
接收对所述数据管理系统的数据查询请求;
确定出所述数据查询请求对应的请求权限信息和用户身份信息;
向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
2.根据权利要求1所述的数据访问权限控制方法,其特征在于,所述确定出所述数据查询请求对应的请求权限信息和用户身份信息,包括:
调用Metastore-filter-hook对所述数据查询请求进行过滤,确定出对应的请求权限信息和用户身份信息。
3.根据权利要求1所述的数据访问权限控制方法,其特征在于,所述向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限,包括:
将包含所述用户身份信息和所述请求权限信息的身份查询请求发送给所述权限模块;
接收所述权限模块基于对所述用户身份信息和所述请求权限信息的权限验证后返回的验证结果,其中,所述验证结果用于表征所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
4.根据权利要求1所述的数据访问权限控制方法,其特征在于,所述向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限,包括:
将包含所述用户身份信息的身份查询请求发送给所述权限模块;
接收所述权限模块返回的与所述用户身份信息匹配的用户权限信息;
将所述请求权限信息与所述用户权限信息进行匹配,确定所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的权限。
5.根据权利要求4所述的数据访问权限控制方法,其特征在于,数据管理系统的权限包括访问数据库的数据库权限和访问数据表的数据表权限,对应的,所述请求权限信息包括数据库请求权限信息和数据表请求权限信息,所述用户权限信息包括数据库用户权限信息和数据表用户权限信息,所述将所述请求权限信息与所述用户权限信息进行匹配,确定所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的权限,包括:
将所述数据库请求权限信息与所述数据库用户权限信息匹配,以及,将所述数据表请求权限信息与所述数据表用户权限信息匹配;
在所述数据库请求权限信息与所述数据库用户权限信息相互匹配,且所述数据表请求权限信息与所述数据表用户权限信息相互匹配时,确定所述用户身份信息对应的用户具有与所述请求权限信息匹配的权限。
6.根据权利要求1至5中任一项所述的数据访问权限控制方法,其特征在于,在所述向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限之后,所述方法还包括:
在所述用户身份信息对应的用户不具有与所述请求权限信息匹配的访问权限时,返回提示无权访问的信息;
在所述用户身份信息对应的用户具有与所述请求权限信息匹配的访问权限时,执行所述数据查询请求,并返回查询结果。
7.一种数据访问权限控制装置,其特征在于,应用于对数据管理系统的访问进行辅助的Hive中,所述数据管理系统包括权限模块,所述装置包括:
接收单元,用于接收对所述数据管理系统的数据查询请求;
确定单元,用于确定出所述数据查询请求对应的请求权限信息和用户身份信息;
验证单元,用于向所述权限模块发送身份查询请求,以验证所述用户身份信息对应的用户是否具有与所述请求权限信息匹配的访问权限。
8.一种数据访问权限控制系统,其特征在于,包括数据管理系统和对所述数据管理系统的访问进行辅助的Hive,数据管理系统包括权限模块、用户模块和数据开发模块,
所述用户模块,用于向数据开发模块发送所述数据查询请求;
所述数据开发模块,用于将所述数据查询请求保存后发送给Hive;
Hive,用于基于接收的所述数据查询请求结合所述权限模块,运行权利要求1至6中任一项所述的数据访问权限控制方法。
9.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的数据访问权限控制方法的步骤。
10.一种电子设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于:所述程序指令被处理器加载并执行时实现权利要求1至6中任一项所述的数据访问权限控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010553781.2A CN111723401A (zh) | 2020-06-17 | 2020-06-17 | 数据访问权限控制方法、装置、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010553781.2A CN111723401A (zh) | 2020-06-17 | 2020-06-17 | 数据访问权限控制方法、装置、系统、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111723401A true CN111723401A (zh) | 2020-09-29 |
Family
ID=72567120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010553781.2A Pending CN111723401A (zh) | 2020-06-17 | 2020-06-17 | 数据访问权限控制方法、装置、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723401A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347124A (zh) * | 2020-11-12 | 2021-02-09 | 浙江百应科技有限公司 | 一种元数据管理平台及元数据管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280367A (zh) * | 2018-01-22 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 数据操作权限的管理方法、装置、计算设备及存储介质 |
CN109214210A (zh) * | 2018-09-14 | 2019-01-15 | 南威软件股份有限公司 | 一种优化蜂巢权限管理的方法及系统 |
CN110532797A (zh) * | 2019-07-24 | 2019-12-03 | 方盈金泰科技(北京)有限公司 | 大数据的脱敏方法和系统 |
CN110619226A (zh) * | 2019-09-12 | 2019-12-27 | 秒针信息技术有限公司 | 一种基于平台的数据处理方法、系统、设备及存储介质 |
-
2020
- 2020-06-17 CN CN202010553781.2A patent/CN111723401A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280367A (zh) * | 2018-01-22 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 数据操作权限的管理方法、装置、计算设备及存储介质 |
CN109214210A (zh) * | 2018-09-14 | 2019-01-15 | 南威软件股份有限公司 | 一种优化蜂巢权限管理的方法及系统 |
CN110532797A (zh) * | 2019-07-24 | 2019-12-03 | 方盈金泰科技(北京)有限公司 | 大数据的脱敏方法和系统 |
CN110619226A (zh) * | 2019-09-12 | 2019-12-27 | 秒针信息技术有限公司 | 一种基于平台的数据处理方法、系统、设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347124A (zh) * | 2020-11-12 | 2021-02-09 | 浙江百应科技有限公司 | 一种元数据管理平台及元数据管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10346625B2 (en) | Automated mechanism to analyze elevated authority usage and capability | |
CN107948203B (zh) | 一种容器登录方法、应用服务器、系统及存储介质 | |
US9432350B2 (en) | System and method for intelligent workload management | |
US10749985B2 (en) | Custom communication channels for application deployment | |
JP5787640B2 (ja) | 認証システムおよび認証方法およびプログラム | |
US10296440B2 (en) | Multi-tenant aware debugging methods and systems | |
CN108289098B (zh) | 分布式文件系统的权限管理方法和装置、服务器、介质 | |
CN110661831B (zh) | 一种基于可信第三方的大数据试验场安全初始化方法 | |
CN106487815B (zh) | 一种基于白名单的容器运行安全验证处理方法及系统 | |
US9449185B2 (en) | Extensible and/or distributed authorization system and/or methods of providing the same | |
US9830469B1 (en) | Automated mechanism to secure customer data | |
CN109450976B (zh) | 一种业务系统的访问的方法及装置 | |
US9928365B1 (en) | Automated mechanism to obtain detailed forensic analysis of file access | |
US11580206B2 (en) | Project-based permission system | |
CN113392415A (zh) | 数据仓库的访问控制方法、系统和电子设备 | |
US20190073455A1 (en) | Managing the display of hidden proprietary software code to authorized licensed users | |
US11146560B1 (en) | Distributed governance of computing resources | |
CN111723401A (zh) | 数据访问权限控制方法、装置、系统、存储介质及设备 | |
CN111651122B (zh) | 数据删除方法、装置、服务器及存储介质 | |
US9330276B2 (en) | Conditional role activation in a database | |
CN111683091A (zh) | 一种访问云主机控制台方法、装置、设备及存储介质 | |
CN114070856B (zh) | 数据处理方法、装置、系统、运维审计设备和存储介质 | |
CN114422197A (zh) | 一种基于策略管理的权限访问控制方法及系统 | |
CN109977659A (zh) | weblogic自动创建本地用户的方法、系统、装置及存储介质 | |
CA2854540C (en) | Managing cross perimeter access |
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 |