CN110175164B - 一种SparkSQL thriftserver查询及操作Hive的权限控制的方法 - Google Patents
一种SparkSQL thriftserver查询及操作Hive的权限控制的方法 Download PDFInfo
- Publication number
- CN110175164B CN110175164B CN201910444799.6A CN201910444799A CN110175164B CN 110175164 B CN110175164 B CN 110175164B CN 201910444799 A CN201910444799 A CN 201910444799A CN 110175164 B CN110175164 B CN 110175164B
- Authority
- CN
- China
- Prior art keywords
- hive
- spark
- service
- configuration
- thriftserver
- 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
Classifications
-
- 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/21—Design, administration or maintenance of databases
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种SparkSQL thriftserver查询及操作Hive的权限控制的方法,属于大数据数据库访问权限控制技术领域,本发明通过使用hive llap服务所拥有的用户身份识别及用户输入SQL解析,联合Ranger的访问权限控制功能结合形成中介服务,通过SparkSQL thriftserver服务对接此中介服务达到了控制权限控制的目的。
Description
技术领域
本发明涉及大数据数据库访问权限控制技术,尤其涉及一种SparkSQLthriftserver查询及操作Hive的权限控制的方法。
背景技术
随着云时代的来临,大数据查询也吸引了越来越多的关注,数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然很多企业可能并没有意识到数据安全性带来问题的隐患,但是随着时间的推移,人们将越来越多的意识到数据安全性对企业的重要性。
Spark on Hive作为当前大数据领域集结构化存储和高速分布式计算使用最多的技术模型,持续受到工业界的广泛关注。SparkSQL是基于内存的分布式计算框架,并且对Hadoop生态系统有高度的支持,比如支持从HDFS、Hbase、Hive等分布式文件系统读取数据。而且SparkSQL目前发展非常迅速,支持的持久层框架越来越多,并且随着SparkSQLthriftserver服务的出现,通过SparkSQL thriftserver服务直接访问Hive更加方便快捷,数据开发人员直接链接SparkSQL thriftserver服务用SQL语句便可以做数据分析,大幅降低了基于SparkSQL的大数据开发难度。但是SparkSQL thriftserver服务也要面临一个问题,即在多用户的应用场景下,使用SparkSQL thriftserver服务在访问Hive数据库时存在着安全问题,无法做到不同用户的访问权限控制。安全访问控制对于商业应用至关重要。因此,对于用户通过Spark SQL访问表的行列权限控制也是重要关键点。无权限控制问题会存在用户可以越权访问其他用户所私有的数据库、数据表,会导致用户数据信息泄露,造成一定的信息安全性影响。
发明内容
为了解决以上技术问题,本发明提出了一种SparkSQL thriftserver查询及操作Hive的权限控制的方法,使用hive llap服务作为中介服务,sparkSQL thriftserver连接hive llap中介服务,达到Ranger权限控制hive数据库的目的。
本发明综合利用hive llap服务及ranger服务的权限控制特性,及增加嵌合sparkSQL thriftserver服务对hive llap服务的支持驱动包来达到控制sparkSQLthriftserver服务访问Hive数据源时,可以进行数据库级、数据表级、数据列级、数据行级的细粒度的控制访问权限,且可以直接在Ranger服务控制台中简单明了的进行权限配置。
本发明的技术方案是:
一种SparkSQL thriftserver查询及操作Hive的权限控制的方法,
主要包括:
1)配置sparkSQL thriftserver服务集成Hive llap服务;
2)配置sparkSQL thriftserver代理用户到Hive llap服务中;
3)配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证。
进一步的,所述配置sparkSQL thriftserver服务集成Hive llap服务,包括在spark配置项`Advanced spark2-env`中的配置方式,即直接在线打包模式或上传jar到服务器直接加载jar模式。包括对spark_thrift_cmd_opts参数的配置。
进一步的,所述配置sparkSQL thriftserver代理用户到Hive llap服务中,包括在spark配置项中的设置方式。主要是对spark.sql.hive.hiveserver2.jdbc.url参数及Run as end user instead of Hive user参数的配置内容。
所述配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证,包括在spark配置项中的配置内容及在hive配置项中的配置内容。
在spark配置项中的配置内容,包括`Custom spark2-thrift-sparkconf`中的内容,包括,spark.hadoop.hive.llap.daemon.service.hosts参数、spark.hadoop.hive.zookeeper.quorum参数、spark.sql.hive.hiveserver2.jdbc.url.principal参数。
在hive配置项中的配置内容,进一步包括`Custom hive-interactive-site`及其他配置参数项,包括,hive.llap.daemon.service.hosts参数、hive.zookeeper.quorum参数、hive.server2.authentication.kerberos.principal参数、hive.llap.task.keytab.file参数、hive.llap.task.principal参数。
进一步的,
具体操作步骤为:
首先,hive llap与Ranger服务相结合,使用Ranger控制Hive,进行配置并启动Hive llap服务;
其次,配置相关的参数,并集成第三方的驱动spark-llap.jar,达到SparkSQLthriftserver服务首先对接的为Hive llap服务,并开启sparkSQL thriftserver服务的代理用户功能,使用户信息代理到Hive llap服务中,使Hive llap服务对用户进行Ranger鉴权功能;
最后,通过配置相关的参数,在SparkSQL thriftserver服务端直接进行输入想要查询的SQL后,进行权限通过校验;
如果权限校验通过,则进行在sparkSQL thriftserver产生相对应的任务并执行,最终返回查询结果;如果权限校验不通过,则在sparkSQL thriftserver端进行返回权限校验失败的提示内容。
本发明通过使用hive llap服务所拥有的用户身份识别及用户输入SQL解析,联合Ranger的访问权限控制功能结合形成中介服务,通过SparkSQL thriftserver服务对接此中介服务达到了控制权限控制的目的,而且可以做到控制粒度到数据库、数据表、数据列、数据行级别,大幅增强了信息的安全性,使用户只能访问及操作当前用户所拥有的数据库、数据表、数据列、数据行,不能访问他人未授权的数据,防范了用户数据泄露的情况。。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明使用hive llap服务作为中介服务,sparkSQL thriftserver连接hivellap中介服务,达到Ranger权限控制hive数据库的目的。
具体描述为:
首先,由于hive llap服务已集成ranger插件,所以hive llap可以与Ranger服务相结合,可以使用其此项功能,达到使用Ranger控制Hive的目的,所以需要进行配置并启动Hive llap服务。
其次,由于SparkSQL thriftserver服务是直接对接的Hive数据库,所以,需要配置相关的参数,并集成第三方的驱动spark-llap.jar,来达到SparkSQL thriftserver服务首先对接的为Hive llap服务,并开启sparkSQL thriftserver服务的代理用户功能,使用户信息可以成功的代理到Hive llap服务中,使Hive llap服务可以对用户进行Ranger鉴权功能。
最后,通过配置相关的参数,可以在SparkSQL thriftserver服务端直接进行输入想要查询的SQL后,进行权限通过校验。如果权限校验通过,则进行在sparkSQLthriftserver产生相对应的任务并执行,最终返回查询结果;如果权限校验不通过,则在sparkSQL thriftserver端进行返回权限校验失败的提示内容。
详细的方法:
(1)开启Hive LLAP(Hive Interactive Query)服务。
(2)开启ranger对hive的控制权限功能。
(3)在Custom hive-site设置
·hive.warehouse.subdir.inherit.perms=true。开启hive数据库的权限继承关系设置,对于所有用例,确保Hive仓库的权限为700(只有所有者才有读,写,执行
的权限).也就是普通用户无法访问安全的表。
(4)设置Hive数据库的文件权限默认初始权限为700权限
(5)设置hive llap kerberos相关权限验证:
·hive.llap.daemon.service.hosts=@llap0
·hive.zookeeper.quorum=your quorum(此处填写集群的quorum值)
·hive.server2.authentication.kerberos.principal=hive/_HOST@IDAP.COM
`Custom hive-interactive-site`下添加如下2个参数:
·hive.llap.task.keytab.file=/etc/security/keytabs/hive.service.keytab
·hive.llap.task.principal=hive/_HOST@INDATA.COM
(6)设置HDFS权限允许任意host提交spark job
Custom core-site`中设置
·hadoop.proxyuser.hive.hosts=*
(7)配置Spark2Thrift Server集成hive llap服务:
`Advanced spark2-env`中设置直接在线打包模式:
·spark_thrift_cmd_opts=--packages
com.hortonworks.spark:spark-llap-assembly_2.11:1.1.3-2.1--repositories
http://repo.hortonworks.com/content/groups/public--confspark.sql.hive.llap=true
或者上传jar到服务器直接加载jar模式:
·spark_thrift_cmd_opts=--jars
/usr/hdp/2.6.1.0-129/spark2/jars/spark-llap_2.11-1.1.3-2.1.jar--conf
spark.sql.hive.llap=true
(8)配置spark相关参数以保证kerberos权限:
在`Custom spark2-thrift-sparkconf`中设置:
·spark.hadoop.hive.llap.daemon.service.hosts=@llap0
·spark.hadoop.hive.zookeeper.quorum=your quorum(此处填写集群的quorum值)
·spark.sql.hive.hiveserver2.jdbc.url.principal=hive的principal
(9)在spark中设置Hive llap服务地址,并开启sparkSQL thriftserver的用户代理功能:
·spark.sql.hive.hiveserver2.jdbc.url=jdbc:hive2://hive_llap地
址:10500/default;hive.server2.proxy.user=${user}
·Run as end user instead of Hive user=false
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (4)
1.一种SparkSQL thriftserver查询及操作Hive的权限控制的方法,其特征在于,
主要包括:
1)配置sparkSQL thriftserver服务集成Hive llap服务;
2)配置sparkSQL thriftserver代理用户到Hive llap服务中;
3)配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证;
所述配置sparkSQL thriftserver服务集成Hive llap服务,包括在spark配置项`Advanced spark2-env`中的配置方式,即直接在线打包模式或上传jar到服务器直接加载jar模式;
配置方式包括对spark_thrift_cmd_opts参数的配置;
所述配置sparkSQL thriftserver代理用户到Hive llap服务中,包括在spark配置项中的设置方式;
主要是对spark.sql.hive.hiveserver2.jdbc.url参数及Run as end user insteadof Hive user参数的配置内容;
所述配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证,包括在spark配置项中的配置内容及在hive配置项中的配置内容。
2.根据权利要求1所述的方法,其特征在于,
在spark配置项中的配置内容,包括`Custom spark2-thrift-sparkconf`中的内容,包括,spark.hadoop.hive.llap.daemon.service.hosts参数、spark.hadoop.hive.zookeeper.quorum参数、spark.sql.hive.hiveserver2.jdbc.url.principal参数。
3.根据权利要求2所述的方法,其特征在于,
在hive配置项中的配置内容,进一步包括`Custom hive-interactive-site`及其他配置参数项,包括,hive.llap.daemon.service.hosts参数、hive.zookeeper.quorum参数、hive.server2.authentication.kerberos.principal参数、hive.llap.task.keytab.file参数、hive.llap.task.principal参数。
4.根据权利要求3所述的方法,其特征在于,
具体操作步骤为:
首先, hive llap与Ranger服务相结合,使用Ranger控制Hive,进行配置并启动Hivellap服务;
其次,配置相关的参数,并集成第三方的驱动spark-llap.jar,达到SparkSQLthriftserver服务首先对接的为Hive llap服务,并开启sparkSQL thriftserver服务的代理用户功能,使用户信息代理到Hive llap服务中,使Hive llap服务对用户进行Ranger鉴权功能;
最后,通过配置相关的参数,在SparkSQL thriftserver服务端直接进行输入想要查询的SQL后,进行权限通过校验;
如果权限校验通过,则进行在sparkSQL thriftserver产生相对应的任务并执行,最终返回查询结果;如果权限校验不通过,则在sparkSQL thriftserver端进行返回权限校验失败的提示内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910444799.6A CN110175164B (zh) | 2019-05-27 | 2019-05-27 | 一种SparkSQL thriftserver查询及操作Hive的权限控制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910444799.6A CN110175164B (zh) | 2019-05-27 | 2019-05-27 | 一种SparkSQL thriftserver查询及操作Hive的权限控制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175164A CN110175164A (zh) | 2019-08-27 |
CN110175164B true CN110175164B (zh) | 2023-04-07 |
Family
ID=67695892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910444799.6A Active CN110175164B (zh) | 2019-05-27 | 2019-05-27 | 一种SparkSQL thriftserver查询及操作Hive的权限控制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175164B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339524A (zh) * | 2020-02-26 | 2020-06-26 | 浪潮软件股份有限公司 | 多租户权限控制方法及装置 |
CN114896584B (zh) * | 2022-07-13 | 2022-10-11 | 杭州比智科技有限公司 | 一种Hive数据权限控制代理层方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018125250A1 (en) * | 2016-12-31 | 2018-07-05 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
CN109145041A (zh) * | 2018-07-18 | 2019-01-04 | 北京云星宇交通科技股份有限公司 | 一种数据访问方法及系统 |
CN109309686A (zh) * | 2018-11-01 | 2019-02-05 | 浪潮软件集团有限公司 | 一种多租户管理方法及装置 |
-
2019
- 2019-05-27 CN CN201910444799.6A patent/CN110175164B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018125250A1 (en) * | 2016-12-31 | 2018-07-05 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
CN109145041A (zh) * | 2018-07-18 | 2019-01-04 | 北京云星宇交通科技股份有限公司 | 一种数据访问方法及系统 |
CN109309686A (zh) * | 2018-11-01 | 2019-02-05 | 浪潮软件集团有限公司 | 一种多租户管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于Web服务技术透明访问网络数据库;罗勇为;《陕西科技大学学报》;20060625(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110175164A (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9946895B1 (en) | Data obfuscation | |
US7698445B2 (en) | Client agents for obtaining attributes from unavailable clients | |
US11962511B2 (en) | Organization level identity management | |
US7509497B2 (en) | System and method for providing security to an application | |
US20190109857A1 (en) | Securing cloud drives using environment-aware security tokens | |
US11855992B2 (en) | Service-to-service role mapping systems and methods | |
US11290446B2 (en) | Access to data stored in a cloud | |
US11048823B2 (en) | Secure file sharing over multiple security domains and dispersed communication networks | |
US11888980B2 (en) | Stateless service-mediated security module | |
US20140280260A1 (en) | Method, apparatus, and computer-readable medium for data tokenization | |
WO2021013033A1 (zh) | 文件操作方法、装置、设备、系统及计算机可读存储介质 | |
JP2020053091A (ja) | 個人番号管理装置、個人番号管理方法、および個人番号管理プログラム | |
JP2016507839A (ja) | アクセス制御のための自由形式メタデータの使用 | |
CN110175164B (zh) | 一种SparkSQL thriftserver查询及操作Hive的权限控制的方法 | |
US9479492B1 (en) | Authored injections of context that are resolved at authentication time | |
US10496840B1 (en) | Recommending security controls for similar data | |
Benantar et al. | Access control systems: From host-centric to network-centric computing | |
US11809589B2 (en) | Secure data structure for database system | |
US20230208634A1 (en) | Key management method and apparatus | |
US20230370473A1 (en) | Policy scope management | |
Ye et al. | Providing Access Control through Program Transformation | |
NZ618683B2 (en) | Access control to data stored in a cloud |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 271000 Langchao science and Technology Park, 527 Dongyue street, Tai'an City, Shandong Province Applicant after: INSPUR SOFTWARE Co.,Ltd. Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Applicant before: INSPUR SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |