一种HBASE数据读取控制方法.pdf

上传人:zhu****_FC 文档编号:6097254 上传时间:2019-04-10 格式:PDF 页数:9 大小:517.14KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610673257.2

申请日:

2016.08.16

公开号:

CN106326766A

公开日:

2017.01.11

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 21/62申请日:20160816|||公开

IPC分类号:

G06F21/62(2013.01)I; G06F17/30

主分类号:

G06F21/62

申请人:

陈亮; 黄健文; 蒋立翀

发明人:

陈亮; 黄健文; 蒋立翀

地址:

510627 广东省广州市天河区珠江西路11号广东全球通大厦

优先权:

专利代理机构:

上海科律专利代理事务所(特殊普通合伙) 31290

代理人:

袁亚军;金碎平

PDF下载: PDF下载
内容摘要

本发明公开了一种HBase数据读取控制方法,包括如下步骤:a)预先设置每个用户对应的用户组及用户组对应的HBase表的读取权限;b)通过统一查询接口进行HBas数据读取,并在读取数据时进行用户身份认证及权限匹配控制;c)对有权限访问HBase数据的用户,通过调用Hbase提供的API接口进行数据读取并返回给客户端。本发明提供的HBase数据读取控制方法,实现了对用户操作HBase表、列簇、列的权限控制,解决了HBase存储数据安全性不高的问题,防范HBase数据被随意访问甚至执行删改等误操作造成的潜在风险,有效地保障了HBase数据的安全性,实用性强,易于推广。

权利要求书

1.一种HBase数据读取控制方法,其特征在于,包括如下步骤:
a)预先设置每个用户对应的用户组及用户组对应的HBase表的读取权限;
b)通过统一查询接口进行HBas数据读取,并在读取数据时进行用户身份认证及权限匹
配控制;
c)对有权限访问HBase数据的用户,通过调用Hbase提供的API接口进行数据读取并返
回给客户端。
2.根据权利要求1所述的HBase数据读取控制方法,其特征在于,所述步骤a)中用户对
应的用户组及用户组对应的HBase表的读取操作关系,使用主外键进行关联,并存放到关系
型数据库中。
3.根据权利要求2所述的HBase数据读取控制方法,其特征在于,所述关系型数据库中
创建有三种数据库表,分别为用户表、用户组表和权限控制表,所述用户表中存储有用户名
及其对应的用户组,所述权限控制表中存储有用户组及其对应的HBase表的操作权限。
4.根据权利要求3所述的HBase数据读取控制方法,其特征在于,所述用户表中存储有
用户id,用户名,密码和用户组id,所述用户组表中存储有用户组id和用户组名,所述权限
控制表中存储有用户组id,HBase表名,HBase列簇和HBase列名,所述用户表里面的用户组
id跟用户组表的用户组id为主外键关系,所述用户组表的用户组id跟权限控制表的用户组
id为主外键关系。
5.根据权利要求4所述的HBase数据读取控制方法,其特征在于,所述步骤b)将所述关
系数据库中用户及其对应的HBase表操作权限缓存到内存中,,按照用户加上HBase表名作
为key值,以HBase列簇及HBase列名作为Value值存储到第一HashMap表中,并启用守护线
程,定时查询数据库,并将数据更新到第一HashMap表中。
6.根据权利要求5所述的HBase数据读取控制方法,其特征在于,所述步骤b)中的统一
查询接口使用Java远程消息交换协议进行通信,通过注册端口和服务名,对客户端提供查
询服务;所述统一查询接口启动后将用户表中的用户名及用户密码存储到第二HashMap表
中,用于对来自客户端的用户名和密码进行验证,对通过验证的用户返回唯一的临时口令,
并将该临时口令和用户名一起存储到第二HashMap表中,用于后续查询使用。
7.根据权利要求6所述的HBase数据读取控制方法,其特征在于,所述步骤c)接收来自
客户端的口令、用户名、HBase表名及查询条件后;首先通过口令及用户名到第二HashMap表
中进行匹配,如果在第二HashMap表中不存在该记录,则判定用户身份为非法,直接返回客
户端错误信息;通过合法验证的用户,根据用户名、HBase表到第一HashMap表中进行匹配,
获取该用户对该HBase表的操作权限,然后遍历该集合数据,验证查询的HBase列簇或HBase
列值是否在该集合数据中,将所有满足权限数据的查询结果通过对象集合的方式返回到客
户端,如果权限数据验证不通过,则返回客户端权限不足的消息。
8.根据权利要求7所述的HBase数据读取控制方法,其特征在于,所述步骤c)通过SCAN
方式或GET方式调用HBase的API接口进行数据查询操作。

说明书

一种HBase数据读取控制方法

技术领域

本发明涉及一种数据读取控制方法,尤其涉及一种HBase数据读取控制的方法。

背景技术

HBase是一个分布式的、面向列的开源数据库,在Hadoop之上提供了类似于
Bigtable的能力,是Apache的Hadoop项目的子项目,其不同于一般的关系数据库而是一个
适合于非结构化数据存储的数据库,另一个不同之处是HBase是基于列的而不是基于行的
模式,以表的形式存储数据,表由行和列组成,列划分为若干个列族(row family),如下表
所示。



众所周知,大数据时代为类似HBase等非结构化数据库提供了诸多机会,HBase凭
借其在海量数据的良好扩展性和高效的读写能力,吸引了更多公司的重视,然而,在众多机
遇的背后,HBase也面临着很多挑战,比如构建和运维HBase集群是一个非常有挑战性的工
作,如何保证HBase的安全性自然就成了一个绕不开的话题。实际上,NoSQL存在的产品安全
性不高的问题一直成为各路反对者的诟病,如果没有访问控制,存储其中的数据可以被随
意访问甚至执行删改等误操作会造成很多潜在的风险,对企业而言也是无法接受的,特别
是在多用户同时使用一个HBase集群的情况,每个用户可以操作的数据是需要隔离的,不同
的用户可以操作的数据是不同的,但如果所有事情都由管理员处理,沟通的代价会很高而
且管理员不得不处理一些Application相关的工作导致管理低效,因此,HBase的访问控制,
就成为了一个很重要的需求。

发明内容

本发明所要解决的技术问题是提供一种HBase数据读取权限控制的方法,解决
HBase存储数据安全性不高的问题,防范HBase数据被随意访问甚至执行删改等误操作造成
的潜在风险。

为解决上述问题,本发明提供了一种HBase数据读取权限控制的方法,其中,包括
如下步骤:a)预先设置每个用户对应的用户组及用户组对应的HBase表的读取权限;b)通过
统一查询接口进行HBas数据读取,并在读取数据时进行用户身份认证及权限匹配控制;c)
对有权限访问HBase数据的用户,通过调用Hbase提供的API接口进行数据读取并返回给客
户端。

上述的HBase数据读取控制方法,其中,所述步骤a)中用户对应的用户组及用户组
对应的HBase表的读取操作关系,使用主外键进行关联,并存放到关系型数据库中。

上述的HBase数据读取控制方法,其中,所述关系型数据库中创建有三种数据库
表,分别为用户表、用户组表和权限控制表,所述用户表中存储有用户名及其对应的用户
组,所述权限控制表中存储有用户组及其对应的HBase表的操作权限。

上述的HBase数据读取控制方法,其中,所述用户表中存储有用户id,用户名,密码
和用户组id,所述用户组表中存储有用户组id和用户组名,所述权限控制表中存储有用户
组id,HBase表名,HBase列簇和HBase列名,所述用户表里面的用户组id跟用户组表的用户
组id为主外键关系,所述用户组表的用户组id跟权限控制表的用户组id为主外键关系。

上述的HBase数据读取控制方法,其中,所述步骤b)将所述关系数据库中用户及其
对应的HBase表操作权限缓存到内存中,,按照用户加上HBase表名作为key值,以HBase列簇
及HBase列名作为Value值存储到第一HashMap表中,并启用守护线程,定时查询数据库,并
将数据更新到第一HashMap表中。

上述的HBase数据读取控制方法,其中,所述步骤b)中的统一查询接口使用Java远
程消息交换协议进行通信,通过注册端口和服务名,对客户端提供查询服务;所述统一查询
接口启动后将用户表中的用户名及用户密码存储到第二HashMap表中,用于对来自客户端
的用户名和密码进行验证,对通过验证的用户返回唯一的临时口令,并将该临时口令和用
户名一起存储到第二HashMap表中,用于后续查询使用。

上述的HBase数据读取控制方法,其中,所述步骤c)接收来自客户端的口令、用户
名、HBase表名及查询条件后;首先通过口令及用户名到第二HashMap表中进行匹配,如果在
第二HashMap表中不存在该记录,则判定用户身份为非法,直接返回客户端错误信息;通过
合法验证的用户,根据用户名、HBase表到第一HashMap表中进行匹配,获取该用户对该
HBase表的操作权限,然后遍历该集合数据,验证查询的HBase列簇或HBase列值是否在该集
合数据中,将所有满足权限数据的查询结果通过对象集合的方式返回到客户端,如果权限
数据验证不通过,则返回客户端权限不足的消息。

上述的HBase数据读取控制方法,其中,所述步骤c)通过SCAN方式或GET方式调用
HBase的API接口进行数据查询操作。

本发明对比现有技术有如下的有益效果:HBase的数据权限控制是依赖于Linux用
户进行,在多用户的情况只依赖于Linux去管理用户是很难管理的,且在不同用户之前的权
限可能会重叠,所以依赖于Linux用户进行数据权限管控只能做到粗粒度的权限控制,无法
满足多用户下的灵活权限控制管理,本发明采用非嵌入式的方式进行HBase数据权限管控,
不依赖与Linux用户而是所有用户采用虚拟用户,可以无限制的进行用户增加修改,不影响
HBase集群的性能。本发明在数据权限管控方面可以做到细粒度地控制用户读取HBase的
表、列簇、列等信息,灵活地控制各个用户的权限以及分配不同的用户组来管理有相同属性
的用户,已达到快速、方便、灵活的管理用户读取HBase数据的权限,本发明在数据权限方面
更加灵活,且无需安装,因此更为高效,实用性强,易于推广。

附图说明

图1为本发明的HBase数据读取控制流程示意图;

图2为本发明的HBase数据读取控制的权限模型表结构示意图;

图3为本发明的HBase数据读取控制的用户身份认证流程图;

图4为本发明的HBase数据查询权限控制流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。

图1为本发明的HBase数据读取控制流程示意图。

请参见图1,本发明提供的HBase数据读取控制方法,其中,包括如下步骤:

步骤S1:预先设置每个用户对应的用户组及用户组对应HBase表的读取权限;

步骤S2:通过统一查询接口读取数据时,进行用户身份认证及权限匹配,进行数据
读取权限控制;

步骤S3:对有权限访问HBase数据的用户,通过调用HBaseAPI接口进行数据读取并
返回给客户端。

步骤S1:预先设置每个用户对应的用户组及用户组对应的HBase表的读取权限;

步骤S2:通过统一查询接口进行HBas数据读取,并在读取数据时进行用户身份认
证及权限匹配控制;

步骤S3:对有权限访问HBase数据的用户,通过调用Hbase提供的API接口进行数据
读取并返回给客户端。

图2为本发明的HBase数据读取控制的权限模型表结构示意图。

请参见图2,本发明使用关系型数据库创建三张数据库表,分别为用户表(user)、
用户组表(group)、权限控制表(authority),其中所述用户表存放的是用户信息包括用户
id、用户名、密码、用户组id等信息,所述用户组表存放用户组信息包括用户组id、用户组名
等信息,所述权限控制表存放用户组对应的权限信息包括用户组id、HBase表名、HBase列
簇、HBase列名等信息,其中,所述用户表里面的用户组id跟所述用户组表的id是为主外键
关系,所述用户组表的id跟所述权限控制表的用户组id为主外键关系。

本发明的统一查询接口使用Java远程消息交换协议JRMP(Java Remote
Messaging Protocol)进行通信,通过注册端口和服务名,对客户端提供查询服务,查询接
口启动后读取关系型数据库中的数据并将用户及其对应的HBase表操作权限,按照用户加
上HBase表名作为key值、HBase列簇及HBase列名作为Value值存储到第一HashMap表中并启
用守护线程,通过定时每3秒查询一次数据库并将数据更新到第一HashMap表中,确保权限
数据操作后可以实时生效,将用户名及用户密码存储到另外的第二HashMap表中,用于验证
用户的身份。客户端通过查询接口的IP、端口号及服务名进行连接查询接口并将分配的用
户名和密码传输到查询接口上进行用户验证,通过验证的用户会返回唯一的临时口令,用
于后续查询使用,如图2所示。

本发明的客户端可以通过将查询HBase的条件及临时口令调用查询接口的查询方
法进行数据查询,查询接口首先验证临时口令是否正确,通过验证后,根据用户名及
HashMap中的数据进行匹配,确认该用户是否有权限查询该HBase的表、列簇及列,对于没有
权限的权限,则直接返回无权限查询消息,通过权限验证的,通过HBase表名调用HBase的
API接口,使用传递过来的查询条件进行查询,并将查询结果返回给客户端,如图3所示。

本发明在所述关系型数据库中创建用户表(user)、用户组表(group)、权限控制表
(authority),编程实现远程HBase查询服务,服务端启动后,注册端口及服务名用于客户端
调用,初始化权限数据读取,通过用户表(user)、用户组表(group)、权限控制表
(authority)三张表关联获取用户及其对应的HBase表的读取权限,通过JDBC连接数据库,
通过关联SQL语句获取用户及其HBase表的操作权限集合,遍历该集合,以用户名及HBase表
名做为Key值,HBase列簇、列拼接在一起并写入List集合中作为Value值,将这些数据存储
到第一HashMap表中,另外用户名作为Key值,用户密码作为Value值存储到另外的第二
HashMap表中用于合法用户验证,启动守护进程,每3秒通过读取数据库的数据,进行用户权
限数据更新以保证用户权限新增或修改可以实时生效。

本发明的服务端实现两个接口功能,分别为用户身份认证接口和数据查询接口,
其中用户身份接口用于校验用户身份的合法性,由客户端传递过来用户名及密码,根据缓
存的第二HashMap表的用户数据进行匹配,匹配通过的返回临时口令并将该口令和用户名
一起存储到第二HashMap表中,配不通过的只返回错误信息。

本发明的数据查询接口是用于HBase数据查询、由客户端传递过来的口令、用户
名、HBase表名及查询条件,首先通过口令及用户名到第二HashMap表中进行匹配,如果在第
一HashMap表中不存在该记录,则用户身份是非法,直接返回客户端错误信息,通过合法验
证的用户,根据用户名和HBase表到存储权限数据的第一HashMap表中进行匹配,获取该用
户对该HBase表的操作权限,然后遍历该集合数据,验证查询的列簇或列值是否在该集合数
据中,满足所有的查询数据都在该集合数据中,则调用HBase的API接口进行SCAN或GET操作
进行数据查询,将返回结果通过对象集合的方式返回到客户端,权限数据验证不通过的,则
返回客户端权限不足的消息。

虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技
术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范
围当以权利要求书所界定的为准。

一种HBASE数据读取控制方法.pdf_第1页
第1页 / 共9页
一种HBASE数据读取控制方法.pdf_第2页
第2页 / 共9页
一种HBASE数据读取控制方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种HBASE数据读取控制方法.pdf》由会员分享,可在线阅读,更多相关《一种HBASE数据读取控制方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明公开了一种HBase数据读取控制方法,包括如下步骤:a)预先设置每个用户对应的用户组及用户组对应的HBase表的读取权限;b)通过统一查询接口进行HBas数据读取,并在读取数据时进行用户身份认证及权限匹配控制;c)对有权限访问HBase数据的用户,通过调用Hbase提供的API接口进行数据读取并返回给客户端。本发明提供的HBase数据读取控制方法,实现了对用户操作HBase表、列簇、列的权限。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1