CN107895113A - 一种支持hadoop多集群的细粒度数据权限控制方法及系统 - Google Patents

一种支持hadoop多集群的细粒度数据权限控制方法及系统 Download PDF

Info

Publication number
CN107895113A
CN107895113A CN201711275099.6A CN201711275099A CN107895113A CN 107895113 A CN107895113 A CN 107895113A CN 201711275099 A CN201711275099 A CN 201711275099A CN 107895113 A CN107895113 A CN 107895113A
Authority
CN
China
Prior art keywords
authority
permission
cluster
group
permission group
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
CN201711275099.6A
Other languages
English (en)
Other versions
CN107895113B (zh
Inventor
徐保荣
范章海
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.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology 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 Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201711275099.6A priority Critical patent/CN107895113B/zh
Publication of CN107895113A publication Critical patent/CN107895113A/zh
Application granted granted Critical
Publication of CN107895113B publication Critical patent/CN107895113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种支持hadoop多集群的细粒度数据权限控制方法,包括确定各权限组的权限组名以及所述权限组的相关描述;为所述权限组按特定顺序分配权限;保存分配好权限的所述权限组;给用户分配相应的所述权限组;登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看其有权限的数据权限。本发明能够在集群账号已有的权限基础上进行分层的细粒度控制,在大数据平台层面对hadoop集群的数据权限进行统一的授权管理,在对数据权限授权时,同一个权限组可跨多个集群的多个集群账号及其特定的权限,用户可切换集群以及切换集群账号身份来操作相关数据服务。本发明还公开了一种支持hadoop多集群的细粒度数据权限控制系统。

Description

一种支持hadoop多集群的细粒度数据权限控制方法及系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种支持hadoop多集群的细粒度数据权限控制方法及系统。
背景技术
在大数据平台这类系统中,用户可通过图形化界面对hbase,hive,hdfs文件进行管理,但是当前平台缺乏颗粒级的支持。许多对安全系数要求较高的组织要么将数据置于非保护状态,对于一个集群账号下的权限都可见,要么对所有用户不可见。大多数企业会严格限制对Hadoop数据的访问,且只支持单集群的权限控制。
当前优秀的Hadoop的授权组件为Sentry,在HueServer2中使用了Sentry进行细粒度的、基于角色的权限控制。Sentry还支持授予角色只能执行某一类型的SQL查询的权限。相比来说,Sentry的授权更加全面,在hive方面,它做的更好,同样支持hive表列的授权,同时更支持Sql查询类型的授权,在执行真正的操作之前会检索mysql验证是否有权限,但是,Sentry目前并不支持hdfs文件内容的授权,也不支持hbase表列的授权,对集群数据权限的控制没有提供统一的多集群权限授权管理,对已有的集群账号的权限没有分层的概念。
Sentry是针对hadoop集群组件本身的权限,通过基于角色的授权可以将访问同一数据集的不同特权级别授予多个组,在数据集本身的权限上进行授权管理,即Sentry是从权限源头支持更细粒度的授权访问控制,并不是在集群账号已有的权限基础上进行分层的细粒度控制。对已有的集群账号的权限,没有进行细粒度的控制,如果需要一个集群账号的部分权限,Sentry会创建一个组,分配相应的角色,再分配给另一个集群账号才能实现,并没有基于当前已有的集群账号的权限进行分层次的更细粒度的分配。Sentry对hadoop的数据权限hbase,hdfs的支持不够细粒度,未支持hbase基于表列级别的权限控制,对有规则的hdfs文件未进行列或内容级别的权限控制。Sentry不支持对用户进行多集群的授权行为,不支持集群的切换及集群账号的切换。
发明内容
有鉴于此,本发明提供了一种支持hadoop多集群的细粒度数据权限控制方法及系统,能够在集群账号已有的权限基础上进行分层的细粒度控制,在大数据平台层面对hadoop集群的数据权限进行统一的授权管理,在对数据权限授权时,同一个权限组可跨多个集群的多个集群账号及其特定的权限,用户可切换集群及切换集群账号身份来操作相关数据服务。
本发明提供了一种支持hadoop多集群的细粒度数据权限控制方法,包括:
确定各权限组的权限组名以及所述权限组的相关描述;
为所述权限组按特定顺序分配权限;
保存分配好权限的所述权限组;
给用户分配相应的所述权限组;
登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。
优选地,所述为所述权限组按特定顺序分配权限包括:
为所述权限组选取集群;
为所述权限组选取所述集群内部的集群账号;
为所述集群账号选取待分配的hive权限、hbase权限以及hdfs权限。
优选地,所述保存分配好权限的所述权限组包括:
将所述权限组的授权信息保存到mysql。
优选地,所述登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据前还包括:
调用数据权限系统提供的统一验证接口,验证所述从被分配的所述权限组获得的权限是否满足预设条件,若是则:
登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。
一种支持hadoop多集群的细粒度数据权限控制系统,包括:
确定模块,用于确定各权限组的权限组名以及所述权限组的相关描述;
第一分配模块,用于为所述权限组按特定顺序分配权限;
保存模块,用于保存分配好权限的所述权限组;
第二分配模块,用于给用户分配相应的所述权限组;
数据管理模块,用于登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限的数据。
优选地,所述第一分配模块具体用于:
为所述权限组选取集群;
为所述权限组选取所述集群内部的集群账号;
为所述集群账号选取待分配的hive权限、hbase权限以及hdfs权限。
优选地,所述保存模块具体用于:
将所述权限组的授权信息保存到mysql。
优选地,所述系统还包括:
权限验证模块,用于调用数据权限系统提供的统一验证接口,验证所述从被分配的所述权限组获得的权限是否满足预设条件;
当所述从被分配的所述权限组获得的权限满足预设条件时,所述数据管理模块用于登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限的数据。
从上述技术方案可以看出,本发明提供了一种支持hadoop多集群的细粒度数据权限控制方法,首先确定各权限组的权限组名以及所述权限组的相关描述,然后为所述权限组按特定顺序分配权限,保存分配好权限的所述权限组;给用户分配相应的所述权限组,最后登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。本发明能够在集群账号已有的权限基础上进行分层的细粒度控制,在大数据平台层面对hadoop集群的数据权限进行统一的授权管理,在对数据权限授权时,同一个权限组可跨多个集群的多个集群账号及其特定的权限,用户可切换集群以及切换集群账号身份来操作相关数据服务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种支持hadoop多集群的细粒度数据权限控制方法实施例1的方法流程图;
图2为本发明公开的一种支持hadoop多集群的细粒度数据权限控制方法实施例2的方法流程图;
图3为本发明公开的一种支持hadoop多集群的细粒度数据权限控制系统实施例1的结构示意图;
图4为本发明公开的一种支持hadoop多集群的细粒度数据权限控制系统实施例2的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种支持hadoop多集群的细粒度数据权限控制方法实施例1的方法流程图,所述方法包括:
S101、确定各权限组的权限组名以及权限组的相关描述;
在进行数据权限分配及控制之前,首先要设计权限组,并确定权限组的组名及该权限组对应权限的相关描述,组是多个集群的集群账号及其各种权限的集合。
S102、为权限组按特定顺序分配权限;
确定好各权限组的组名及权限组的相关描述之后,则需要为权限组按特定顺序分配权限,一个组可拥有不同集群下的集群账号,且可指定组拥有该集群账号下的某些数据权限。
S103、保存分配好权限的权限组;
为各权限组分配好权限之后,则需要对分配好权限的各权限组进行缓存。
S104、给用户分配相应的权限组;
将分配好权限的各权限组缓存后,还需要给用户分配相应的权限组,用户需要通过所属组来获得数据权限,以集群账号为维度,用户获取其hbase、hive及hdfs的文件访问权限。
S105、登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。
用户被分配权限组后,用户可登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看其有权限查看的数据,对权限进行细粒度控制。
综上所述,在上述实施例中,首先确定各权限组的权限组名以及权限组的相关描述,然后为权限组按特定顺序分配权限,保存分配好权限的权限组,给用户分配相应的权限组,最后登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。本发明能够在集群账号已有的权限基础上进行分层的细粒度控制,在大数据平台层面对hadoop集群的数据权限进行统一的授权管理,对hive和hbase支持到列级别的权限控制,除了对hdfs目录的权限控制,对一些有特定规则的文件也可做控制,支持列级或者正则表达式级过滤,在对数据权限授权时,同一个权限组可跨多个集群的多个集群账号及其特定的权限,用户可切换集群及切换集群账号身份来操作相关数据服务,对于某些集群的某些特定集群账号,可以将这些集群账号某些权限授权到一个组,用户通过其所属组来获得集群账号的身份,在集群账号的权限基础上体现出权限的分层,进而获得操作数据的权限,适用于各部门项目管理员与各组成员的权限分配,且集群账号少,简化了集群运维人员的管理。
具体地,在上述实施例中,切换集群账号时,权限也会跟着切换,在分布式环境中,权限缓存的各层级别分别为mysql,redis和本地缓存,本地缓存切换后会从新从mysql读取更新redis时,支持会利用redis的消息订阅发布机制通知其他服务器清除本地缓存,重新从redis中去读,保证分布式的权限一致性。
具体地,在上述实施例中,Hbase权限从hbase的内部表即hbase:acl表获取,所获取的hbase权限包括namespace级别和表级别;Hive权限从hive的元数据表中获取,设计的表包括DBS,DB_PRIVS,TBLS,TBL_PRIVS;Hdfs文件权限从hdfs相关的api接口获取。
具体地,在上述实施例中,对hbase,hive支持到列级别;对有一定规则的hdfs文件支持到列和内容级别,内容级别的控制通过权限表达式来控制,权限表达式可以是正则表达式;控制hdfs文件列权限级别实现,以hdfs文件为例,由用户定义一组文件的schema,该schema包括文件类型、序列化方式、分隔符等,根据schema获取表头信息,即列信息,包括常用文件类型:orc,rc,parquet,text,sequence等。
如图2所示,为本发明公开的一种支持hadoop多集群的细粒度数据权限控制方法实施例2的方法流程图,所述方法包括:
S201、确定各权限组的权限组名以及权限组的相关描述;
在进行数据权限分配及控制之前,首先要设计权限组,并确定权限组的组名及该权限组对应权限的相关描述,组是多个集群的集群账号及其各种权限的集合。
S202、为权限组选取集群;
S203、为权限组选取所述集群内部的集群账号;
S204、为集群账号选取待分配的hive权限、hbase权限以及hdfs权限。
确定好各权限组的组名及权限组的相关描述之后,则需要为权限组按如下顺序分配权限:首先为权限组选取集群;然后为权限组选取所述集群内部的集群账号;最后为集群账号选取待分配的hive权限、hbase权限以及hdfs权限。一个组可拥有不同集群下的集群账号,且可指定组拥有该集群账号下的某些数据权限。
S205、将权限组的授权信息保存到mysql;
为各权限组分配好权限之后,则需要将分配好权限的各权限组缓存至mysql。
S206、给用户分配相应的权限组;
将分配好权限的各权限组缓存后,还需要给用户分配相应的权限组,用户需要通过所属组来获得数据权限,以集群账号为维度,用户获取其hbase、hive及hdfs的文件访问权限。
S207、调用数据权限系统提供的统一验证接口,验证从被分配的权限组获得的权限是否满足预设条件,若是,则执行步骤S208:
在进行下述步骤各个操作在执行之前,需调用数据权限系统提供的统一验证接口,先验证是否有该权限,通过再执行实际要执行的操作,在访问集群之前进行了一次拦截,减轻集群访问压力。
S208、登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。
用户被分配权限组后,当从被分配的权限组获得的权限满足预设条件时,即用户具有该权限时,用户可登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看其有权限查看的数据,对权限进行细粒度控制。
综上所述,在上述实施例中,首先确定各权限组的权限组名以及权限组的相关描述,然后为权限组按如下顺序分配权限:为权限组选取集群,为权限组选取所述集群内部的集群账号,为集群账号选取待分配的hive权限、hbase权限以及hdfs权限;再将分配好权限的各权限组缓存至mysql,接着给用户分配相应的权限组,然后,调用数据权限系统提供的统一验证接口,验证从被分配的所述权限组获得的权限是否满足预设条件,当从被分配的权限组获得的权限满足预设条件时,当从被分配的权限组获得的权限满足预设条件时,登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。本发明能够在集群账号已有的权限基础上进行分层的细粒度控制,在大数据平台层面对hadoop集群的数据权限进行统一的授权管理,对hive和hbase支持到列级别的权限控制,除了对hdfs目录的权限控制,对一些有特定规则的文件也可做控制,支持列级或者正则表达式级过滤,在对数据权限授权时,同一个权限组可跨多个集群的多个集群账号及其特定的权限,用户可切换集群及切换集群账号身份来操作相关数据服务,对于某些集群的某些特定集群账号,可以将这些集群账号某些权限授权到一个组,用户通过其所属组来获得集群账号的身份,在集群账号的权限基础上体现出权限的分层,在交互平台层面对权限进行拦截实现集群账号的权限分层,进而获得操作数据的权限,适用于各部门项目管理员与各组成员的权限分配,且集群账号少,简化了集群运维人员的管理。
具体地,在上述实施例中,切换集群账号时,权限也会跟着切换,在分布式环境中,权限缓存的各层级别分别为mysql,redis和本地缓存,本地缓存切换后会从新从mysql读取更新redis时,支持会利用redis的消息订阅发布机制通知其他服务器清除本地缓存,重新从redis中去读,保证分布式的权限一致性。
具体地,在上述实施例中,Hbase权限从hbase的内部表即hbase:acl表获取,所获取的hbase权限包括namespace级别和表级别;Hive权限从hive的元数据表中获取,设计的表包括DBS,DB_PRIVS,TBLS,TBL_PRIVS;Hdfs文件权限从hdfs相关的api接口获取。
具体地,在上述实施例中,对hbase,hive支持到列级别;对有一定规则的hdfs文件支持到列和内容级别,内容级别的控制通过权限表达式来控制,权限表达式可以是正则表达式;控制hdfs文件列权限级别实现,以hdfs文件为例,由用户定义一组文件的schema,该schema包括文件类型、序列化方式、分隔符等,根据schema获取表头信息,即列信息,包括常用文件类型:orc,rc,parquet,text,sequence等。
具体地,在上述实施例中,在权限拦截过程中,需调用数据权限系统提供的统一验证接口,以hive为例,展示部分api接口如下:
HivePrivsSubject.getCheckTables(cluster,clustername,db);
//根据集群,集群账号,数据库获取在该数据库下有权限的表;
HivePrivsSubject.checkDelTable(cluster,clustername,db,tablename);
//根据集群,集群账号,数据库,表明判断是否有权限删除表。
如图3所示,为本发明公开的一种支持hadoop多集群的细粒度数据权限控制系统实施例1的结构示意图,所述系统包括:
确定模块301,用于确定各权限组的权限组名以及权限组的相关描述;
在进行数据权限分配及控制之前,首先要设计权限组,并确定权限组的组名及该权限组对应权限的相关描述,组是多个集群的集群账号及其各种权限的集合。
第一分配模块302,用于为权限组按特定顺序分配权限;
确定好各权限组的组名及权限组的相关描述之后,则需要为权限组按特定顺序分配权限,一个组可拥有不同集群下的集群账号,且可指定组拥有该集群账号下的某些数据权限。
保存模块303,用于保存分配好权限的所述权限组;
为各权限组分配好权限之后,则需要对分配好权限的各权限组进行缓存。
第二分配模块304,用于给用户分配相应的所述权限组;
将分配好权限的各权限组缓存后,还需要给用户分配相应的权限组,用户需要通过所属组来获得数据权限,以集群账号为维度,用户获取其hbase、hive及hdfs的文件访问权限。
数据管理模块305,用于登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限的数据。
用户被分配权限组后,用户可登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看其有权限查看的数据,对权限进行细粒度控制。
综上所述,在上述实施例中,首先确定各权限组的权限组名以及权限组的相关描述,然后为权限组按特定顺序分配权限,保存分配好权限的权限组,给用户分配相应的权限组,最后登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。能够在集群账号已有的权限基础上进行分层的细粒度控制,在大数据平台层面对hadoop集群的数据权限进行统一的授权管理,对hive和hbase支持到列级别的权限控制,除了对hdfs目录的权限控制,对一些有特定规则的文件也可做控制,支持列级或者正则表达式级过滤,在对数据权限授权时,同一个权限组可跨多个集群的多个集群账号及其特定的权限,用户可切换集群切换集群账号身份来操作相关数据服务,对于某些集群的某些特定集群账号,可以将这些集群账号某些权限授权到一个组,用户通过其所属组来获得集群账号的身份,在集群账号的权限基础上体现出权限的分层,进而获得操作数据的权限,适用于各部门项目管理员与各组成员的权限分配,且集群账号少,简化了集群运维人员的管理。
具体地,在上述实施例中,切换集群账号时,权限也会跟着切换,在分布式环境中,权限缓存的各层级别分别为mysql,redis和本地缓存,本地缓存切换后会从新从mysql读取更新redis时,支持会利用redis的消息订阅发布机制通知其他服务器清除本地缓存,重新从redis中去读,保证分布式的权限一致性。
具体地,在上述实施例中,Hbase权限从hbase的内部表即hbase:acl表获取,所获取的hbase权限包括namespace级别和表级别;Hive权限从hive的元数据表中获取,设计的表包括DBS,DB_PRIVS,TBLS,TBL_PRIVS;Hdfs文件权限从hdfs相关的api接口获取。
具体地,在上述实施例中,对hbase,hive支持到列级别;对有一定规则的hdfs文件支持到列和内容级别,内容级别的控制通过权限表达式来控制,权限表达式可以是正则表达式;控制hdfs文件列权限级别实现,以hdfs文件为例,由用户定义一组文件的schema,该schema包括文件类型、序列化方式、分隔符等,根据schema获取表头信息,即列信息,包括常用文件类型:orc,rc,parquet,text,sequence等。
如图4所示,为本发明公开的一种支持hadoop多集群的细粒度数据权限控制系统实施例2的结构示意图,所述系统包括:
确定模块401,用于确定各权限组的权限组名以及权限组的相关描述;
在进行数据权限分配及控制之前,首先要设计权限组,并确定权限组的组名及该权限组对应权限的相关描述,组是多个集群的集群账号及其各种权限的集合。
第一分配模块402,用于为权限组选取集群,为权限组选取所述集群内部的集群账号,为集群账号选取待分配的hive权限、hbase权限以及hdfs权限;
确定好各权限组的组名及权限组的相关描述之后,则需要为权限组按如下顺序分配权限:首先为权限组选取集群;然后为权限组选取所述集群内部的集群账号;最后为集群账号选取待分配的hive权限、hbase权限以及hdfs权限。一个组可拥有不同集群下的集群账号,且可指定组拥有该集群账号下的某些数据权限。
保存模块403,用于将权限组的授权信息保存到mysql;
为各权限组分配好权限之后,则需要将分配好权限的各权限组缓存至mysql。
第二分配模块404,用于给用户分配相应的权限组;
将分配好权限的各权限组缓存后,还需要给用户分配相应的权限组,用户需要通过所属组来获得数据权限,以集群账号为维度,用户获取其hbase、hive及hdfs的文件访问权限。
权限验证模块405,用于调用数据权限系统提供的统一验证接口,验证所述从被分配的所述权限组获得的权限是否满足预设条件;
在进行下述步骤各个操作在执行之前,需调用数据权限系统提供的统一验证接口,先验证是否有该权限,通过再执行实际要执行的操作,在访问集群之前进行了一次拦截,减轻集群访问压力。
数据管理模块406,用于当所述从被分配的所述权限组获得的权限满足预设条件时,登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。
用户被分配权限组后,当从被分配的权限组获得的权限满足预设条件时,即用户具有该权限时,用户可登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看其有权限查看的数据,对权限进行细粒度控制。
综上所述,在上述实施例中,首先确定各权限组的权限组名以及权限组的相关描述,然后为权限组按如下顺序分配权限:为权限组选取集群,为权限组选取所述集群内部的集群账号,为集群账号选取待分配的hive权限、hbase权限以及hdfs权限;再将分配好权限的各权限组缓存至mysql,接着给用户分配相应的权限组,然后,调用数据权限系统提供的统一验证接口,验证从被分配的所述权限组获得的权限是否满足预设条件,当从被分配的权限组获得的权限满足预设条件时,登录大数据平台,基于从被分配的权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。本发明能够在集群账号已有的权限基础上进行分层的细粒度控制,在大数据平台层面对hadoop集群的数据权限进行统一的授权管理,对hive和hbase支持到列级别的权限控制,除了对hdfs目录的权限控制,对一些有特定规则的文件也可做控制,支持列级或者正则表达式级过滤,在对数据权限授权时,同一个权限组可跨多个集群的多个集群账号及其特定的权限,用户可切换集群及切换集群账号身份来操作相关数据服务,对于某些集群的某些特定集群账号,可以将这些集群账号某些权限授权到一个组,用户通过其所属组来获得集群账号的身份,在集群账号的权限基础上体现出权限的分层,在交互平台层面对权限进行拦截实现集群账号的权限分层,进而获得操作数据的权限,适用于各部门项目管理员与各组成员的权限分配,且集群账号少,简化了集群运维人员的管理。
具体地,在上述实施例中,切换集群账号时,权限也会跟着切换,在分布式环境中,权限缓存的各层级别分别为mysql,redis和本地缓存,本地缓存切换后会从新从mysql读取更新redis时,支持会利用redis的消息订阅发布机制通知其他服务器清除本地缓存,重新从redis中去读,保证分布式的权限一致性。
具体地,在上述实施例中,Hbase权限从hbase的内部表即hbase:acl表获取,所获取的hbase权限包括namespace级别和表级别;Hive权限从hive的元数据表中获取,设计的表包括DBS,DB_PRIVS,TBLS,TBL_PRIVS;Hdfs文件权限从hdfs相关的api接口获取。
具体地,在上述实施例中,对hbase,hive支持到列级别;对有一定规则的hdfs文件支持到列和内容级别,内容级别的控制通过权限表达式来控制,权限表达式可以是正则表达式;控制hdfs文件列权限级别实现,以hdfs文件为例,由用户定义一组文件的schema,该schema包括文件类型、序列化方式、分隔符等,根据schema获取表头信息,即列信息,包括常用文件类型:orc,rc,parquet,text,sequence等。
具体地,在上述实施例中,在权限拦截过程中,需调用数据权限系统提供的统一验证接口,以hive为例,展示部分api接口如下:
HivePrivsSubject.getCheckTables(cluster,clustername,db);
//根据集群,集群账号,数据库获取在该数据库下有权限的表;
HivePrivsSubject.checkDelTable(cluster,clustername,db,tablename);
//根据集群,集群账号,数据库,表明判断是否有权限删除表。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种支持hadoop多集群的细粒度数据权限控制方法,其特征在于,包括:
确定各权限组的权限组名以及所述权限组的相关描述;
为所述权限组按特定顺序分配权限;
保存分配好权限的所述权限组;
给用户分配相应的所述权限组;
登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。
2.根据权利要求1所述的方法,其特征在于,所述为所述权限组按特定顺序分配权限包括:
为所述权限组选取集群;
为所述权限组选取所述集群内部的集群账号;
为所述集群账号选取待分配的hive权限、hbase权限以及hdfs权限。
3.根据权利要求1所述的方法,其特征在于,所述保存分配好权限的所述权限组包括:
将所述权限组的授权信息保存到mysql。
4.根据权利要求1所述的方法,其特征在于,所述登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据前还包括:
调用数据权限系统提供的统一验证接口,验证所述从被分配的所述权限组获得的权限是否满足预设条件,若是则:
登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限查看的数据。
5.一种支持hadoop多集群的细粒度数据权限控制系统,其特征在于,包括:
确定模块,用于确定各权限组的权限组名以及所述权限组的相关描述;
第一分配模块,用于为所述权限组按特定顺序分配权限;
保存模块,用于保存分配好权限的所述权限组;
第二分配模块,用于给用户分配相应的所述权限组;
数据管理模块,用于登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限的数据。
6.根据权利要求5所述的系统,其特征在于,所述第一分配模块具体用于:
为所述权限组选取集群;
为所述权限组选取所述集群内部的集群账号;
为所述集群账号选取待分配的hive权限、hbase权限以及hdfs权限。
7.根据权利要求5所述的系统,其特征在于,所述保存模块具体用于:
将所述权限组的授权信息保存到mysql。
8.根据权利要求5所述的系统,其特征在于,还包括:
权限验证模块,用于调用数据权限系统提供的统一验证接口,验证所述从被分配的所述权限组获得的权限是否满足预设条件;
当所述从被分配的所述权限组获得的权限满足预设条件时,所述数据管理模块用于登录大数据平台,基于从被分配的所述权限组获得的权限,切换集群及集群账号,查看有权限的数据。
CN201711275099.6A 2017-12-06 2017-12-06 一种支持hadoop多集群的细粒度数据权限控制方法及系统 Active CN107895113B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711275099.6A CN107895113B (zh) 2017-12-06 2017-12-06 一种支持hadoop多集群的细粒度数据权限控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711275099.6A CN107895113B (zh) 2017-12-06 2017-12-06 一种支持hadoop多集群的细粒度数据权限控制方法及系统

Publications (2)

Publication Number Publication Date
CN107895113A true CN107895113A (zh) 2018-04-10
CN107895113B CN107895113B (zh) 2021-06-11

Family

ID=61807402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711275099.6A Active CN107895113B (zh) 2017-12-06 2017-12-06 一种支持hadoop多集群的细粒度数据权限控制方法及系统

Country Status (1)

Country Link
CN (1) CN107895113B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109343863A (zh) * 2018-09-06 2019-02-15 福建星瑞格软件有限公司 一种hdfs权限的界面配置方法及系统
CN109740373A (zh) * 2018-12-19 2019-05-10 福建新大陆软件工程有限公司 一种Hadoop集群管理方法、系统及平台
CN110619226A (zh) * 2019-09-12 2019-12-27 秒针信息技术有限公司 一种基于平台的数据处理方法、系统、设备及存储介质
CN111049869A (zh) * 2018-10-15 2020-04-21 航天信息股份有限公司 一种Hadoop集群中用户管理方法及系统
CN111209107A (zh) * 2019-12-26 2020-05-29 中科曙光国际信息产业有限公司 多集群操作方法
CN114896584A (zh) * 2022-07-13 2022-08-12 杭州比智科技有限公司 一种Hive数据权限控制代理层方法及系统
CN115086024A (zh) * 2022-06-14 2022-09-20 深圳云创数安科技有限公司 基于数据签名的数据传输方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107343007A (zh) * 2017-07-17 2017-11-10 广西科技大学 基于用户身份及权限认证的分布式文件管理方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107343007A (zh) * 2017-07-17 2017-11-10 广西科技大学 基于用户身份及权限认证的分布式文件管理方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TECHCHAN: "《Apache Sentry 架构介绍》", 《CSDN》 *
张非凡: "基于HDFS的云存储访问控制技术研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109343863A (zh) * 2018-09-06 2019-02-15 福建星瑞格软件有限公司 一种hdfs权限的界面配置方法及系统
CN109343863B (zh) * 2018-09-06 2022-01-04 福建星瑞格软件有限公司 一种hdfs权限的界面配置方法及系统
CN111049869A (zh) * 2018-10-15 2020-04-21 航天信息股份有限公司 一种Hadoop集群中用户管理方法及系统
CN111049869B (zh) * 2018-10-15 2022-09-02 航天信息股份有限公司 一种Hadoop集群中用户管理方法及系统
CN109740373A (zh) * 2018-12-19 2019-05-10 福建新大陆软件工程有限公司 一种Hadoop集群管理方法、系统及平台
CN110619226A (zh) * 2019-09-12 2019-12-27 秒针信息技术有限公司 一种基于平台的数据处理方法、系统、设备及存储介质
CN111209107A (zh) * 2019-12-26 2020-05-29 中科曙光国际信息产业有限公司 多集群操作方法
CN115086024A (zh) * 2022-06-14 2022-09-20 深圳云创数安科技有限公司 基于数据签名的数据传输方法、装置、设备及介质
CN114896584A (zh) * 2022-07-13 2022-08-12 杭州比智科技有限公司 一种Hive数据权限控制代理层方法及系统

Also Published As

Publication number Publication date
CN107895113B (zh) 2021-06-11

Similar Documents

Publication Publication Date Title
CN107895113A (zh) 一种支持hadoop多集群的细粒度数据权限控制方法及系统
Chong et al. Multi-tenant data architecture
US6484173B1 (en) Controlling access to a storage device
US6766397B2 (en) Controlling access to a storage device
US20110010758A1 (en) Method and apparatus for ascertaining data access permission of groups of users to groups of data elements
CN104145468B (zh) 一种文件访问权限控制方法及装置
CN108132775A (zh) 一种租户管理系统及方法
CN102394894A (zh) 一种基于云计算的网络虚拟磁盘文件安全管理方法
WO2017152113A1 (en) Policy management, enforcement, and audit for data security
CN103763369B (zh) 一种基于san存储系统的多重权限分配方法
EP3398091A1 (en) System, method, and device for unified access control on federated database
CN106534351A (zh) 一种支持共享存储的云桌面系统和方法
WO2007035453A1 (en) Transactional sealed storage
Komlenovic et al. An empirical assessment of approaches to distributed enforcement in role-based access control (RBAC)
DE102012101162B4 (de) Clusterspeichersystem, Verfahren zum sicheren Löschen von Daten und Computerprogrammprodukt
CN106778310A (zh) 一种数据管理方法和系统
CN107463852A (zh) 基于ApacheRanger对Hadoop集群数据的保护装置及保护方法
CN110765192A (zh) 一种基于云平台的gis数据管理及处理方法
CN113407626A (zh) 一种基于区块链的规划管控方法、存储介质及终端设备
CN106529230A (zh) 基于角色的权限控制机制
US11934551B2 (en) Processing per-use requests for user data
Jogdand et al. CSaaS-a multi-cloud framework for secure file storage technology using open ZFS
US20230244796A1 (en) A database server system
US11204717B2 (en) Object storage system with access control quota status check
EP3654221A1 (en) Distributed data storage system and method

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