CN109543448B - Hdfs文件访问权限控制方法、设备及存储介质 - Google Patents
Hdfs文件访问权限控制方法、设备及存储介质 Download PDFInfo
- Publication number
- CN109543448B CN109543448B CN201811372490.2A CN201811372490A CN109543448B CN 109543448 B CN109543448 B CN 109543448B CN 201811372490 A CN201811372490 A CN 201811372490A CN 109543448 B CN109543448 B CN 109543448B
- Authority
- CN
- China
- Prior art keywords
- access
- hdfs file
- user
- permission
- hdfs
- 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
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
-
- 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/45—Structures or tools for the administration of authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种HDFS文件访问权限控制方法,该方法包括:接收用户端发送的针对HDFS文件的访问请求;判断所述HDFS文件是否具有对应的Hive表;若是,则基于所述访问请求判断用户是否对所述Hive表拥有相应的访问权限;若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则接受所述访问请求;若所述用户不具有与所述访问请求相应的所述Hive表的访问权限,则拒绝所述访问请求。本发明还公开了一种HDFS文件访问权限控制设备及存储介质。本发明能够避免当用户没有Hive权限却属于HDFS文件的用户组内时造成的用户权限扩大,从而提升HDFS文件的安全性。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及HDFS文件访问权限控制方法、设备及存储介质。
背景技术
随着大数据的发展,Hadoop(分布式系统基础架构)平台应用范围越来越广,HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,HDFS能提供高吞吐量的数据访问;Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,其存储文件的系统使用的是HDFS。
HDFS每个文件有一个所有者(owner)和一个用户组(group),文件对其所有者、同组的其他用户以及所有其他用户分别有着不同的权限,目前,对于HDFS文件的访问权限控制主要通过Apache Ranger与Apache Sentry两种权限管理框架实现,当接收到用户的HDFS文件访问请求后,通过判断请求访问的用户是否在HDFS文件的用户组内以此进行鉴权和授权。存在的弊端是:当用户没有Hive权限,却属于请求访问的HDFS文件的用户组内时,现有权限管理框架会根据用户组对应的权限对用户授权访问,存在用户权限扩大的隐患,不能确保HDFS文件和文件夹的安全。
发明内容
本发明的主要目的在于提出一种HDFS文件访问权限控制方法、设备及存储介质,旨在避免当用户没有Hive权限却属于请求访问的HDFS文件的用户组内时造成的用户权限扩大,从而提升HDFS文件的安全性。
为实现上述目的,本发明提供一种HDFS文件访问权限控制方法,所述方法包括如下步骤:
接收用户端发送的针对HDFS文件的访问请求;
判断所述HDFS文件是否具有对应的数据仓库工具Hive表;
若是,则基于所述访问请求判断用户是否对所述Hive表拥有相应的访问权限;
若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则接受所述访问请求;
若所述用户不具有与所述访问请求相应的所述Hive表的访问权限,则拒绝所述访问请求。
可选地,所述基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限的步骤包括:
查询所述HDFS文件的权限配置库;其中,所述权限配置库根据所述Hive表的权限信息预先配置;
判断所述用户于所述权限配置库中是否拥有与所述访问请求相应的访问权限。
可选地,所述查询所述HDFS文件的权限配置库的步骤之前还包括:
获取所述Hive表的权限信息;
将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库。
可选地,所述将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库的步骤之后还包括:
基于预设条件,检测所述Hive表的权限信息是否更新;
若是,则进入步骤:获取所述Hive表的权限信息。
可选地,所述获取所述Hive表的权限信息的步骤之前还包括:
根据所述Hive表的权限信息对所述用户进行授权。
可选地,所述判断所述HDFS文件是否具有对应的Hive表的步骤包括:
获取所述HDFS文件的文件路径;
判断所述文件路径与所述Hive表对应的数据存储路径是否匹配;
若所述文件路径与所述Hive表对应的数据存储路径相匹配,则确定所述HDFS文件具有对应的Hive表,进入步骤:基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限。
可选地,所述判断所述HDFS文件是否具有对应的Hive表的步骤之后还包括:
若所述HDFS文件不具有与所述HDFS文件对应的Hive表,则基于所述访问请求判断所述用户是否对所述HDFS文件拥有相应的访问权限;
若所述用户拥有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:接受所述访问请求,若所述用户不具有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:拒绝所述访问请求。
可选地,所述接收用户端发送的针对HDFS文件的访问请求的步骤之后还包括:
判断所述用户是否为所述HDFS文件的所有者;
若否,则进入步骤:判断所述HDFS文件是否具有对应的Hive表;
若是,则进入步骤:接受所述访问请求。
此外,为实现上述目的,本发明还提出一种HDFS文件访问权限控制设备,所述HDFS文件访问权限控制设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的HDFS文件访问权限控制程序,所述HDFS文件访问权限控制程序被所述处理器执行时实现如上所述的HDFS文件访问权限控制方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,应用于计算机,所述存储介质上存储有HDFS文件访问权限控制程序,所述HDFS文件访问权限控制程序被处理器执行时实现如上所述的HDFS文件访问权限控制方法的步骤。
本发明HDFS文件访问权限控制方法通过接收用户端发送的针对HDFS文件的访问请求;判断所述HDFS文件是否具有对应的Hive表;若是,基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限;若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则接受所述访问请求,否则,拒绝所述访问请求。本发明HDFS文件访问权限控制方法,当接收到用户端发送的针对HDFS文件的访问请求时,首先判断用户所请求访问的HDFS文件是否为Hive存储的数据,若是,则判断当前用户是否具有Hive权限,只有当用户具有Hive权限时,才授权用户访问HDFS文件,由此,避免了当用户没有Hive权限却属于HDFS文件的用户组内时,现有技术直接对当前用户授权访问而造成的用户权限扩大的问题,进而确保了HDFS文件和文件夹的安全。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明HDFS文件访问权限控制方法第一实施例的流程示意图;
图3为图2中步骤S20的细化步骤示意图;
图4为本发明HDFS文件访问权限控制方法第二实施例的流程示意图;
图5为本发明HDFS文件访问权限控制方法第三实施例的流程示意图;
图6为本发明HDFS文件访问权限控制方法第四实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:接收用户端发送的针对HDFS文件的访问请求;判断所述HDFS文件是否具有对应的数据仓库工具Hive表;若是,则基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限;若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则接受所述访问请求;若所述用户不具有与所述访问请求相应的所述Hive表的访问权限,则拒绝所述访问请求。
现有技术中,对于HDFS文件的访问权限控制主要通过Apache Ranger与ApacheSentry两种权限管理框架实现,当接收到用户的HDFS文件访问请求后,现有技术通过判断请求访问的用户是否在组内以此进行鉴权和授权。存在的弊端是:当用户没有Hive权限,却属于group内时,现有权限管理框架会根据group对应的权限对用户授权访问,存在用户权限扩大的隐患,不能确保HDFS文件和文件夹的安全。
本发明HDFS文件访问权限控制方法,当接收到用户端发送的针对HDFS文件的访问请求时,首先判断用户所请求访问的HDFS文件是否为Hive存储的数据,若是,则判断当前用户是否具有Hive权限,只有当用户具有Hive权限时,才授权用户访问HDFS文件,由此,避免了当用户没有Hive权限却属于HDFS文件的用户组内时,现有技术直接对当前用户授权访问而造成的用户权限扩大的问题,进而确保了HDFS文件和文件夹的安全。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例HDFS文件访问权限控制设备可以是服务器、PC机或虚拟机设备。
如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及HDFS文件访问权限控制程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接用户(用户端),与用户进行数据通信;而处理器1001可以用于调用存储器1005中存储的HDFS文件访问权限控制程序,并执行以下操作:
接收用户端发送的针对HDFS文件的访问请求;
判断所述HDFS文件是否具有对应的数据仓库工具Hive表;
若是,则基于所述访问请求判断用户是否对所述Hive表拥有相应的访问权限;
若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则接受所述访问请求;
若所述用户不具有与所述访问请求相应的所述Hive表的访问权限,则拒绝所述访问请求。
进一步地,处理器1001可以调用存储器1005中存储的HDFS文件访问权限控制程序,还执行以下操作:
查询所述HDFS文件的权限配置库;其中,所述权限配置库根据所述Hive表的权限信息预先配置;
判断所述用户于所述权限配置库中是否拥有与所述访问请求相应的访问权限。
进一步地,处理器1001可以调用存储器1005中存储的HDFS文件访问权限控制程序,还执行以下操作:
获取所述Hive表的权限信息;
将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库。
进一步地,处理器1001可以调用存储器1005中存储的HDFS文件访问权限控制程序,还执行以下操作:
基于预设条件,检测所述Hive表的权限信息是否更新;
若是,则进入步骤:获取所述Hive表的权限信息。
进一步地,处理器1001可以调用存储器1005中存储的HDFS文件访问权限控制程序,还执行以下操作:
根据所述Hive表的权限信息对所述用户进行授权。
进一步地,处理器1001可以调用存储器1005中存储的HDFS文件访问权限控制程序,还执行以下操作:
获取所述HDFS文件的文件路径;
判断所述文件路径与所述Hive表对应的数据存储路径是否匹配;
若所述文件路径与所述Hive表对应的数据存储路径相匹配,则确定所述HDFS文件具有对应的Hive表,进入步骤:基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限。
进一步地,处理器1001可以调用存储器1005中存储的HDFS文件访问权限控制程序,还执行以下操作:
若所述HDFS文件不具有与所述HDFS文件对应的Hive表,则基于所述访问请求判断所述用户是否对所述HDFS文件拥有相应的访问权限;
若所述用户拥有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:接受所述访问请求,若所述用户不具有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:拒绝所述访问请求。
进一步地,处理器1001可以调用存储器1005中存储的HDFS文件访问权限控制程序,还执行以下操作:
判断所述用户是否为所述HDFS文件的所有者;
若否,则进入步骤:判断所述HDFS文件是否具有对应的Hive表;
若是,则进入步骤:接受所述访问请求。
基于上述硬件结构,提出本发明HDFS文件访问权限控制方法实施例。
参照图2,图2为本发明HDFS文件访问权限控制方法第一实施例的流程示意图,所述方法包括:
步骤S10,接收用户端发送的针对HDFS文件的访问请求;
Hadoop分布式文件系统(HDFS)每个文件有一个所有者(owner)和一个用户组(group),HDFS文件对其所有者、用户组中的其他用户以及所有其他用户分别有着不同的权限。
目前,现有技术对于HDFS文件的访问权限控制主要通过Apache Ranger与ApacheSentry两种权限管理框架实现,当接收到用户端发送的HDFS文件访问请求后,现有权限管理框架通过判断请求访问的用户是否是HDFS文件的所有者或者通过判断请求访问的用户是否在HDFS文件的用户组内以此进行对用户的鉴权和授权。而当用户请求访问的HDFS文件存储有Hive的HDFS中的文件时,若当前用户没有对应的Hive权限,却被添加在HDFS文件的用户组内时,现有权限管理框架会根据用户组对应的用户权限对当前用户授权访问,这就造成了用户权限扩大,无法确保HDFS文件和文件夹的安全;并且现有的权限控制依赖于操作系统的用户组,对于HDFS权限控制需要同时维护操作系统的用户组信息,花费成本较高;虽然现有的权限控制可通过添加插件的形式,需要同时改造HDFS、Hive等组件的依赖,以实现权限控制,但是这种方式对现有集群改造部署工作量大。
而本实施例针对HDFS的特性,结合Hive权限,实现控制和自定义HDFS文件指定路径下的读/写权限,优化多用户访问HDFS文件的权限判断逻辑,提升了HDFS文件和文件夹的安全性。
在本实施例中,首先接收用户端发送的针对HDFS文件的访问请求。
步骤S20,判断所述HDFS文件是否具有对应的Hive表;
在本实施例中,接收用户端发送的针对HDFS文件的访问请求后,所述访问请求包括对HDFS文件的读/写访问请求,根据所述访问请求,判断所述访问请求所请求访问的HDFS文件是否具有对应的Hive表,即判断所述访问请求所请求访问的HDFS文件是否为存储有Hive的HDFS中的文件;具体地,作为一种实施方式,参照图3,图3为图2中步骤S20的细化步骤示意图,上述步骤S20可以进一步包括:
步骤S21,获取所述HDFS文件的文件路径;
步骤S22,判断所述文件路径与所述Hive表对应的数据存储路径是否匹配。
具体地,Hive于HDFS中默认的仓库路径为/user/hive/warehouse/,在用户请求数据访问时,获取用户要访问的HDFS文件的文件路径,与Hive默认的仓库路径进行模式匹配,若用户要访问的HDFS的文件路径在Hive默认的仓库路径下,则确定当前HDFS文件具有对应的Hive表,即当前HDFS文件存储有Hive的HDFS中的文件。
若所述文件路径与所述Hive表对应的数据存储路径相匹配,则确定所述HDFS文件具有对应的Hive表,进入步骤:步骤S30,基于所述访问请求判断用户是否对所述Hive表拥有相应的访问权限。
若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则进入步骤:步骤S40,接受所述访问请求,若所述用户不具有与所述访问请求相应的所述Hive表的访问权限,执行步骤S50,拒绝所述访问请求。
在本实施例中,当用户请求访问的HDFS文件为Hive表中的数据时,则判断当前用户是否具有与其访问请求对应的Hive表的读/写权限,若具有,响应其访问请求,授权当前用户访问对应的HDFS文件,若当前用户没有与访问请求对应的Hive表的读/写权限,则拒绝当前用户访问其请求访问的HDFS文件。作为一种实施方式,在用户请求数据访问时通过对用户所请求访问的HDFS文件路径与Hive存储路径进行匹配,以此来判断当前HDFS文件是否具有对应的Hive表,若具有,则将用户访问HDFS文件的权限与用户的Hive权限相结合,若当前用户具有与其访问请求对应的Hive表的读/写权限,则确定用户拥有所述HDFS文件的读/写权限,并响应其访问请求,若当前用户没有与访问请求对应的Hive表的读/写权限,则确定用户没有所述HDFS文件的读/写权限,并拒绝当前用户访问其请求访问的HDFS文件。
本实施例通过接收用户端发送的针对HDFS文件的访问请求;判断所述HDFS文件是否具有对应的数据仓库工具Hive表;若是,则基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限;若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则接受所述访问请求;若所述用户不具有与所述访问请求相应的所述Hive表的访问权限,则拒绝所述访问请求;由此,实现了当接收到用户端发送的HDFS文件访问请求时,在判断HDFS文件用户权限时,跳过了HDFS文件用户组的权限判断,只结合用户的Hive权限进行HDFS文件访问权限控制,避免了跨库用户权限的扩大,达到数据隔离的目的;其次,本实施例极大简化了Hadoop平台对于用户权限的管理,管理员不再需要在服务器上维护HDFS用户与服务器用户群组的对应关系,而只需要负责在Hive中对表进行用户授权,如grantselect on table A to user B,即可完成权限控制,不再需要在服务器上将用户B添加到表A文件属性的群组中,所需成本较低;此外,本实施例部署简单,无需添加插件,只需要增加NameNode的依赖包,对Hadoop源码无侵入,在部署时可先部署一台NameNode,然后通过NameNode高可用机制进行切换,验证通过后再部署另一台NameNode,做到对用户无感知部署;由此,避免了当用户没有Hive权限却属于HDFS文件的group内时,现有技术直接对group内的用户授权访问而造成的用户权限扩大的问题,进而确保了HDFS文件和文件夹的安全。
进一步地,参照图4,图4为本发明HDFS文件访问权限控制方法第二实施例的流程示意图。基于上述图2所示的实施例,步骤S30,基于所述访问请求判断用户是否对所述Hive表拥有相应的访问权限的步骤包括:
步骤S31,查询所述HDFS文件的权限配置库;其中,所述权限配置库根据所述Hive表的权限信息预先配置;
步骤S32,判断所述用户于所述权限配置库中是否拥有与所述访问请求相应的访问权限。
本实施例中,当接收到用户端发送的针对HDFS文件的访问请求后,判断所述HDFS文件是否具有对应的Hive表,若是,查询预置的HDFS文件的权限配置库对用户进行鉴权和授权,所述权限配置库根据所述Hive表的权限信息预先配置,具体地,查询所述权限配置库,判断当前用户是否拥有与所述访问请求相应的由Hive权限转换得到的HDFS文件读/写权限,若具有,则接受所述访问请求,否则,拒绝所述访问请求。
进一步地,步骤S31,查询所述HDFS文件的权限配置库的步骤之前还包括:
步骤S33,获取所述Hive表的权限信息;
步骤S34,将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库,以实现所述权限配置库的配置。
所述权限配置库根据所述Hive表的权限信息预先配置,具体地,获取所述Hive表的权限信息,将Hive的SELECT、ALL等权限转换为HDFS的读、写权限,并保存到HDFS权限配置库中,HDFS根据此配置库对用户文件读写权限进行判断。
在本实施例中,作为一种实施方式,预先获取所述Hive表的权限信息,将Hive的SELECT、ALL等权限转换为HDFS的读、写权限,并保存到HDFS权限配置库中,当接收到用户端发送的针对HDFS文件的访问请求后,根据HDFS文件路径与Hive默认仓库路径匹配,判断所述HDFS文件是否具有对应的Hive表,若具有,则查询所述预置的HDFS文件的权限配置库对用户进行鉴权和授权。
本实施例在HDFS外建立一个自定义的HDFS权限配置库,负责存储从Hive权限中转换得到的HDFS用户权限,当客户端发起请求时,HDFS权限控制方案通过对HDFS文件路径进行模式匹配,确定当前HDFS文件对应的Hive表,再查询自定义HDFS权限配置库进行权限判断,实现基于Hive权限的HDFS访问控制。
进一步地,步骤S34,将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库的步骤之后还执行:基于预设条件,检测所述Hive表的权限信息是否更新;若是,则进入步骤:步骤S33,获取所述Hive表的权限信息。
具体地,周期性检测或者人工触发检测所述Hive表的权限信息是否更新,若所述Hive表的权限信息更新,则获取所述Hive表的权限信息,将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库,实现了基于Hive权限的HDFS权限可与Hive权限进行同步刷新。基于缓存的HDFS权限刷新策略,可与Hive权限进行同步刷新,提高HDFS权限控制的准确性。
进一步地,步骤S33,获取所述Hive表的权限信息的步骤之前还执行:根据所述Hive表的权限信息对所述用户进行授权。
本实施例中,判断HDFS用户权限时,跳过用户组的权限判断,只结合Hive进行权限控制,管理员不再需要在服务器上维护HDFS用户与服务器用户群组的对应关系,而只需要负责在Hive中对表进行授权,如grant select on table A to user B,不再需要在服务器上将用户B添加到表A文件属性的群组中。
本实施例中,当接收到用户端发送的针对HDFS文件的访问请求时,首先判断所述HDFS文件是否具有对应的Hive表,若是,则判断当前用户是否具有Hive权限,只有当用户具有Hive权限时,才授权用户访问HDFS文件,由此,避免了当用户没有Hive权限却属于HDFS文件的用户组内时,现有技术直接对当前用户授权访问而造成的用户权限扩大的问题,进而确保了HDFS文件和文件夹的安全。
进一步地,参照图5,图5为本发明HDFS文件访问权限控制方法第三实施例的流程示意图。基于上述图4所示的实施例,步骤S20,判断所述HDFS文件是否具有对应的Hive表的步骤之后还包括:
若所述HDFS文件不具有与所述HDFS文件对应的Hive表,步骤S60,基于所述访问请求判断所述用户是否对所述HDFS文件拥有相应的访问权限;
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将sql语句转换为MapReduce任务进行运行;Hive基于数据仓库,提供静态数据的动态查询,其使用类SQL语言,底层经过编译转为MapReduce程序,在Hadoop上运行,数据存储在HDFS上。
本实施例中,接收到用户端发送的HDFS文件访问请求后,判断所述HDFS文件是否具有对应的Hive表,当用户请求访问的HDFS文件不具有对应的Hive表时,则用户的访问权限与用户是否具有Hive权限无关,此时则使用原生HDFS权限校验,对用户进行鉴权授权,具体地,使用原生HDFS权限校验用户权限,首先验证当前用户是否为HDFS文件的所有者,若是,则响应所述访问请求,授权当前用户访问HDFS文件;若当前用户不是HDFS文件的所有者,再验证当前用户是否属于所述HDFS文件的用户组,若是,则根据HDFS文件的用户组成员对应的权限,授权用户访问。
若所述用户拥有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:步骤S40,接受所述访问请求,若所述用户不具有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:步骤S50,拒绝所述访问请求。
进一步地,若当前用户为所述HDFS文件的owner或者属于所述HDFS文件的用户组,则响应所述访问请求,授权当前用户访问,否则,拒绝访问。
本实施例通过接收用户端发送的针对HDFS文件的访问请求;判断所述HDFS文件是否具有对应的Hive表,若所述HDFS文件不具有与所述HDFS文件对应的Hive表,则基于所述访问请求判断所述用户是否对所述HDFS文件拥有相应的访问权限,若所述用户拥有与所述访问请求相应的所述HDFS文件的访问权限,接受所述访问请求,若所述用户不具有与所述访问请求相应的所述HDFS文件的访问权限,拒绝所述访问请求,由此,实现了对HDFS文件特定目录下的文件使用基于Hive权限的HDFS权限控制,对HDFS文件其它目录下的文件使用原生HDFS权限校验,避免了当用户没有Hive权限却属于HDFS文件的用户组内时,现有技术直接对group内的用户授权访问而造成的用户权限扩大的问题,进而确保了HDFS文件和文件夹的安全。
进一步地,参照图6,图6为本发明HDFS文件访问权限控制方法第四实施例的流程示意图。基于上述图2所示的实施例,步骤S10,接收用户端发送的针对HDFS文件的访问请求的步骤之后还包括:
步骤S11,判断所述用户是否为所述HDFS文件的所有者;
若否,则进入步骤:步骤S20,判断所述HDFS文件是否具有对应的Hive表。
在本实施例中,接收用户端发送的针对HDFS文件的访问请求后,首先判断所述用户是否为所述HDFS文件的所有者,若否,才判断所述HDFS文件是否具有对应的Hive表,区别于现有技术的HDFS文件用户组的权限判断,本实施例结合用户的Hive权限进行HDFS文件访问权限控制,避免了跨库用户权限的扩大,达到数据隔离的目的;本实施例极大简化了Hadoop平台对于用户权限的管理,管理员不再需要在服务器上维护HDFS用户与服务器用户群组的对应关系,而只需要负责在Hive中对表进行用户授权,如grant select on table Ato user B,即可完成权限控制,不再需要在服务器上将用户B添加到表A文件属性的群组中;本实施例部署简单,只需要增加NameNode的依赖包,对Hadoop源码无侵入,在部署时可先部署一台NameNode,然后通过NameNode高可用机制进行切换,验证通过后再部署另一台NameNode,做到对用户无感知部署;本实施例基于用户Hive权限实现HDFS文件用户访问权限控制,去除了用户组管理的大数据平台HDFS权限判断,基于缓存的HDFS权限刷新策略,可与Hive权限进行同步刷新,由此,避免了当用户没有Hive权限却属于HDFS文件的group内时,现有技术直接对group内的用户授权访问而造成的用户权限扩大的问题,进而确保了HDFS文件和文件夹的安全。
进一步地,步骤S11,判断所述用户是否为所述HDFS文件的所有者,若是,则进入步骤,步骤S40,接受所述访问请求。
作为一种实施方式,当判断HDFS文件用户权限时,第一步与原生HDFS权限校验步骤相同,首先判断owner,若当前用户不是HDFS文件的owner时,区别于现有技术,本实施例跳过了HDFS文件用户组的权限判断,只结合Hive进行权限控制,由此避免了用户权限扩大,达到数据隔离的目的,确保HDFS文件的安全性。
本发明还提供一种HDFS文件访问权限控制设备。
本发明HDFS文件访问权限控制设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的HDFS文件访问权限控制程序,所述HDFS文件访问权限控制程序被所述处理器执行时实现如上所述的HDFS文件访问权限控制方法的步骤。
其中,在所述处理器上运行的HDFS文件访问权限控制程序被执行时所实现的方法可参照本发明HDFS文件访问权限控制方法各个实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有HDFS文件访问权限控制程序,所述HDFS文件访问权限控制程序被处理器执行时实现如上所述的HDFS文件访问权限控制方法的步骤。
其中,在所述处理器上运行的HDFS文件访问权限控制程序被执行时所实现的方法可参照本发明HDFS文件访问权限控制方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种Hadoop分布式文件系统HDFS文件访问权限控制方法,其特征在于,所述HDFS文件访问权限控制方法包括如下步骤:
接收用户端发送的针对HDFS文件的访问请求,其中所述接收用户端发送的针对HDFS文件的访问请求的步骤之后,包括:判断所述用户是否为所述HDFS文件的所有者;若否,则进入步骤:判断所述HDFS文件是否具有对应的Hive表;若是,则进入步骤:接受所述访问请求;
判断所述HDFS文件是否具有对应的数据仓库工具Hive表,其中所述判断所述HDFS文件是否具有对应的数据仓库工具Hive表的步骤,包括:在用户请求数据访问时,获取用户要访问的所述HDFS文件的文件路径;判断所述文件路径与所述Hive表对应的数据存储路径是否匹配;若所述文件路径在所述Hive表对应的数据存储路径下,则确定所述HDFS文件具有对应的Hive表,进入步骤:基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限,其中所述Hive表对应的数据存储路径是指Hive默认的仓库路径;
若是,则基于所述访问请求判断用户是否对所述Hive表拥有相应的访问权限;
若所述用户拥有与所述访问请求相应的所述Hive表的访问权限,则接受所述访问请求;
若所述用户不具有与所述访问请求相应的所述Hive表的访问权限,则拒绝所述访问请求。
2.如权利要求1所述的HDFS文件访问权限控制方法,其特征在于,所述基于所述访问请求判断所述用户是否对所述Hive表拥有相应的访问权限的步骤包括:
查询所述HDFS文件的权限配置库;其中,所述权限配置库根据所述Hive表的权限信息预先配置;
判断所述用户于所述权限配置库中是否拥有与所述访问请求相应的访问权限。
3.如权利要求2所述的HDFS文件访问权限控制方法,其特征在于,所述查询所述HDFS文件的权限配置库的步骤之前还包括:
获取所述Hive表的权限信息;
将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库。
4.如权利要求3所述的HDFS文件访问权限控制方法,其特征在于,所述将所述Hive表的权限信息转换为所述HDFS文件对应的访问权限,并保存到HDFS文件的权限配置库的步骤之后还包括:
基于预设条件,检测所述Hive表的权限信息是否更新;
若是,则进入步骤:获取所述Hive表的权限信息。
5.如权利要求3所述的HDFS文件访问权限控制方法,其特征在于,所述获取所述Hive表的权限信息的步骤之前还包括:
根据所述Hive表的权限信息对所述用户进行授权。
6.如权利要求1所述的HDFS文件访问权限控制方法,其特征在于,所述判断所述HDFS文件是否具有对应的Hive表的步骤之后还包括:
若所述HDFS文件不具有与所述HDFS文件对应的Hive表,则基于所述访问请求判断所述用户是否对所述HDFS文件拥有相应的访问权限;
若所述用户拥有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:接受所述访问请求,若所述用户不具有与所述访问请求相应的所述HDFS文件的访问权限,则进入步骤:拒绝所述访问请求。
7.一种HDFS文件访问权限控制设备,其特征在于,所述HDFS文件访问权限控制设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的HDFS文件访问权限控制程序,所述HDFS文件访问权限控制程序被所述处理器执行时实现如权利要求1至6中任一项所述的HDFS文件访问权限控制方法的步骤。
8.一种存储介质,应用于计算机,其特征在于,所述存储介质上存储有HDFS文件访问权限控制程序,所述HDFS文件访问权限控制程序被处理器执行时实现如权利要求1至6中任一项所述的HDFS文件访问权限控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811372490.2A CN109543448B (zh) | 2018-11-16 | 2018-11-16 | Hdfs文件访问权限控制方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811372490.2A CN109543448B (zh) | 2018-11-16 | 2018-11-16 | Hdfs文件访问权限控制方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109543448A CN109543448A (zh) | 2019-03-29 |
CN109543448B true CN109543448B (zh) | 2022-07-15 |
Family
ID=65848210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811372490.2A Active CN109543448B (zh) | 2018-11-16 | 2018-11-16 | Hdfs文件访问权限控制方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109543448B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363026B (zh) * | 2019-07-19 | 2021-06-25 | 深圳前海微众银行股份有限公司 | 文件操作方法、装置、设备、系统及计算机可读存储介质 |
CN112580088B (zh) * | 2019-09-30 | 2024-08-23 | 北京国双科技有限公司 | 数据加载方法、装置、计算机设备和存储介质 |
CN112989401A (zh) * | 2019-12-13 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种权限管理方法、装置、电子设备及存储介质 |
CN114567477B (zh) * | 2022-02-24 | 2024-03-22 | 特赞(上海)信息科技有限公司 | 一种多方协同的权限管理方法、装置、终端及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066867A (zh) * | 2017-03-11 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种大数据集群资源分配方法及装置 |
CN107194238A (zh) * | 2017-05-22 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种管理访问权限的方法和装置及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488791B (zh) * | 2013-09-30 | 2018-03-27 | 华为技术有限公司 | 数据访问方法、系统及数据仓库 |
US20160098573A1 (en) * | 2014-10-03 | 2016-04-07 | Zettaset, Inc. | Securing a Distributed File System |
CN105095392B (zh) * | 2015-07-02 | 2018-09-04 | 北京京东尚科信息技术有限公司 | 一种数据集市间共享数据的方法及装置 |
CN107944288B (zh) * | 2016-10-12 | 2022-09-06 | 北京京东尚科信息技术有限公司 | 一种数据访问控制方法和装置 |
CN108737371A (zh) * | 2018-04-08 | 2018-11-02 | 努比亚技术有限公司 | Hive数据访问控制方法、服务器及计算机存储介质 |
-
2018
- 2018-11-16 CN CN201811372490.2A patent/CN109543448B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066867A (zh) * | 2017-03-11 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种大数据集群资源分配方法及装置 |
CN107194238A (zh) * | 2017-05-22 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种管理访问权限的方法和装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109543448A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109543448B (zh) | Hdfs文件访问权限控制方法、设备及存储介质 | |
WO2019114766A1 (zh) | 一种数据脱敏方法、服务器、终端及计算机可读存储介质 | |
US20120144501A1 (en) | Regulating access to protected data resources using upgraded access tokens | |
JP5200721B2 (ja) | 制御方法、制御装置、及びプログラム | |
US8667578B2 (en) | Web management authorization and delegation framework | |
US8776255B2 (en) | Claims-aware role-based access control | |
CN103067463B (zh) | 用户root权限集中管理系统和管理方法 | |
US9507927B2 (en) | Dynamic identity switching | |
US20130007891A1 (en) | Server system, control method, and storage medium for securely executing access to data of a tenant | |
CN108289098B (zh) | 分布式文件系统的权限管理方法和装置、服务器、介质 | |
US9355270B2 (en) | Security configuration systems and methods for portal users in a multi-tenant database environment | |
WO2021013033A1 (zh) | 文件操作方法、装置、设备、系统及计算机可读存储介质 | |
CN105516059B (zh) | 一种资源访问控制方法和装置 | |
US9769159B2 (en) | Cookie optimization | |
US20170187705A1 (en) | Method of controlling access to business cloud service | |
US9229700B2 (en) | Methods and systems for dynamic upgrade of an access manager | |
US20150341362A1 (en) | Method and system for selectively permitting non-secure application to communicate with secure application | |
US9665732B2 (en) | Secure Download from internet marketplace | |
CN112487478A (zh) | 数据访问控制方法、设备、存储介质和数据库系统 | |
CN110971580B (zh) | 一种权限控制方法及装置 | |
CN106528710A (zh) | 一种后台管理系统的权限控制方法和装置 | |
CN111753268B (zh) | 一种单点登录方法、装置、存储介质及移动终端 | |
WO2019052328A1 (zh) | 一种匿名账户的鉴权方法及服务器 | |
CN113343267A (zh) | 数据的访问权限管理方法、装置、终端设备及存储介质 | |
CN114338060A (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 |