CN106326766B - 一种HBase数据读取控制方法 - Google Patents
一种HBase数据读取控制方法 Download PDFInfo
- Publication number
- CN106326766B CN106326766B CN201610673257.2A CN201610673257A CN106326766B CN 106326766 B CN106326766 B CN 106326766B CN 201610673257 A CN201610673257 A CN 201610673257A CN 106326766 B CN106326766 B CN 106326766B
- Authority
- CN
- China
- Prior art keywords
- user
- hbase
- data
- name
- user 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.)
- Expired - Fee Related
Links
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种HBase数据读取控制方法,包括如下步骤:a)预先设置每个用户对应的用户组及用户组对应的HBase表的读取权限;b)通过统一查询接口进行HBas数据读取,并在读取数据时进行用户身份认证及权限匹配控制;c)对有权限访问HBase数据的用户,通过调用Hbase提供的API接口进行数据读取并返回给客户端。本发明提供的HBase数据读取控制方法,实现了对用户操作HBase表、列簇、列的权限控制,解决了HBase存储数据安全性不高的问题,防范HBase数据被随意访问甚至执行删改等误操作造成的潜在风险,有效地保障了HBase数据的安全性,实用性强,易于推广。
Description
技术领域
本发明涉及一种数据读取控制方法,尤其涉及一种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 RemoteMessaging 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操作进行数据查询,将返回结果通过对象集合的方式返回到客户端,权限数据验证不通过的,则返回客户端权限不足的消息。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (3)
1.一种HBase数据读取控制方法,其特征在于,包括如下步骤:
a)预先设置每个用户对应的用户组及用户组对应的HBase表的读取权限;
b)通过统一查询接口进行HBas数据读取,并在读取数据时进行用户身份认证及权限匹配控制;
c)对有权限访问HBase数据的用户,通过调用Hbase提供的API接口进行数据读取并返回给客户端;
所述步骤a)中用户对应的用户组及用户组对应的HBase表的读取操作关系,使用主外键进行关联,并存放到关系型数据库中;
所述关系型数据库中创建有三种数据库表,分别为用户表、用户组表和权限控制表,所述用户表中存储有用户名及其对应的用户组,所述权限控制表中存储有用户组及其对应的HBase表的操作权限;
所述用户表中存储有用户id,用户名,密码和用户组id,所述用户组表中存储有用户组id和用户组名,所述权限控制表中存储有用户组id,HBase表名,HBase列簇和HBase列名,所述用户表里面的用户组id跟用户组表的用户组id为主外键关系,所述用户组表的用户组id跟权限控制表的用户组id为主外键关系;
所述步骤b)将所述关系型数据库中用户及其对应的HBase表操作权限缓存到内存中,按照用户加上HBase表名作为key值,以HBase列簇及HBase列名作为Value值存储到第一HashMap表中,并启用守护线程,定时查询数据库,并将数据更新到第一HashMap表中;
所述步骤b)中的统一查询接口使用Java远程消息交换协议进行通信,通过注册端口和服务名,对客户端提供查询服务;所述统一查询接口启动后将用户表中的用户名及用户密码存储到第二HashMap表中,用于对来自客户端的用户名和密码进行验证,对通过验证的用户返回唯一的临时口令,并将该临时口令和用户名一起存储到第二HashMap表中,用于后续查询使用。
2.根据权利要求1所述的HBase数据读取控制方法,其特征在于,所述步骤c)接收来自客户端的口令、用户名、HBase表名及查询条件后;首先通过口令及用户名到第二HashMap表中进行匹配,如果在第二HashMap表中不存在相应记录,则判定用户身份为非法,直接返回客户端错误信息;通过合法验证的用户,根据用户名、HBase表到第一HashMap表中进行匹配,获取该用户对该HBase表的操作权限,然后遍历操作权限数据,验证查询的HBase列簇或HBase列值是否在操作权限数据中,将所有满足权限数据的查询结果通过对象集合的方式返回到客户端,如果权限数据验证不通过,则返回客户端权限不足的消息。
3.根据权利要求2所述的HBase数据读取控制方法,其特征在于,所述步骤c)通过SCAN方式或GET方式调用HBase的API接口进行数据查询操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610673257.2A CN106326766B (zh) | 2016-08-16 | 2016-08-16 | 一种HBase数据读取控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610673257.2A CN106326766B (zh) | 2016-08-16 | 2016-08-16 | 一种HBase数据读取控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106326766A CN106326766A (zh) | 2017-01-11 |
CN106326766B true CN106326766B (zh) | 2019-04-09 |
Family
ID=57740553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610673257.2A Expired - Fee Related CN106326766B (zh) | 2016-08-16 | 2016-08-16 | 一种HBase数据读取控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326766B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107343007A (zh) * | 2017-07-17 | 2017-11-10 | 广西科技大学 | 基于用户身份及权限认证的分布式文件管理方法及系统 |
CN109409119A (zh) * | 2017-08-17 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 数据操作方法和装置 |
CN109558433B (zh) * | 2017-09-27 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 一种请求访问hdfs的方法和装置 |
CN109766708B (zh) * | 2017-11-09 | 2021-04-30 | 北京京东尚科信息技术有限公司 | 数据资源的访问方法、系统、计算机系统及存储介质 |
CN112905978B (zh) * | 2021-02-20 | 2023-06-06 | 成都新希望金融信息有限公司 | 权限管理方法和装置 |
CN112989293B (zh) * | 2021-03-19 | 2022-03-22 | 山东英信计算机技术有限公司 | 一种ipmi用户的权限配置方法和装置 |
CN113591143A (zh) * | 2021-07-07 | 2021-11-02 | 四川新网银行股份有限公司 | 一种限制客户端IP读写HBase表的控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1605992A (zh) * | 2003-10-10 | 2005-04-13 | 鸿富锦精密工业(深圳)有限公司 | 访问控制列表中用户权限快取生成系统及方法 |
CN102930226A (zh) * | 2012-10-25 | 2013-02-13 | 无锡中科泛在信息技术研发中心有限公司 | 细粒度客户端使用权限控制方法 |
CN104994086A (zh) * | 2015-06-26 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 一种数据库集群权限的控制方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216758B2 (en) * | 2013-10-24 | 2019-02-26 | Vmware, Inc. | Multi-tenant production and test deployments of Hadoop |
-
2016
- 2016-08-16 CN CN201610673257.2A patent/CN106326766B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1605992A (zh) * | 2003-10-10 | 2005-04-13 | 鸿富锦精密工业(深圳)有限公司 | 访问控制列表中用户权限快取生成系统及方法 |
CN102930226A (zh) * | 2012-10-25 | 2013-02-13 | 无锡中科泛在信息技术研发中心有限公司 | 细粒度客户端使用权限控制方法 |
CN104994086A (zh) * | 2015-06-26 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 一种数据库集群权限的控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106326766A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326766B (zh) | 一种HBase数据读取控制方法 | |
US20210243193A1 (en) | Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (dlt) platform | |
CN108632268B (zh) | 区块链访问的鉴权方法和装置、存储介质、电子装置 | |
US9135458B1 (en) | Secure file transfer systems and methods | |
TWI717028B (zh) | 基於區塊鏈的發票取用方法和裝置、電子設備 | |
CN104050401B (zh) | 用户权限管理方法及系统 | |
US9600675B2 (en) | Secure file transfer systems and methods | |
CN109617698A (zh) | 发放数字证书的方法、数字证书颁发中心和介质 | |
CN108898389A (zh) | 基于区块链的内容验证方法及装置、电子设备 | |
CN105871914B (zh) | 客户关系管理系统访问控制方法 | |
CN111865943B (zh) | 一种基于微服务的多层级租户鉴权方法及装置 | |
ES2875963T3 (es) | Método y sistema relacionados con la autenticación de usuarios para acceder a redes de datos | |
US20210271765A1 (en) | Delegation using pairwise decentralized identifier | |
CN103685305A (zh) | 通过单点登录多个业务应用系统的方法和系统 | |
CN106506511B (zh) | 一种通讯录信息处理方法、装置 | |
US20200058091A1 (en) | Address management system | |
CN110851127B (zh) | 一种基于区块链的通用存证方法 | |
US11587084B2 (en) | Decentralized identification anchored by decentralized identifiers | |
CN110852693A (zh) | 基于区块链的电子证照管理系统 | |
CN109446259A (zh) | 数据处理方法及装置、处理机及存储介质 | |
CN109213790A (zh) | 一种基于区块链的数据流通分析方法和系统 | |
CN110430180A (zh) | 一种基于热插拔的物联网平台及实现方法 | |
US10333939B2 (en) | System and method for authentication | |
CN109800601A (zh) | 一种基于区块链的互联网实名认证方法 | |
CN109388923B (zh) | 一种程序执行方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190409 Termination date: 20190816 |
|
CF01 | Termination of patent right due to non-payment of annual fee |