Hive权限控制中间层-Hamza

1、产品概述

Hive作为大数据时代的数据仓库工具,使我们分析处理海量结构化数据成为可能。越来越多的公司和机构都将Hive作为应对大数据分析的强有力工具。但使用中,比较明显的问题便是当存在多个应用同时使用同一Hive的时候,如何有效控制彼此的数据安全,如何更方便使用Hive UDF的扩展机制。

当然,作为大数据平台开发过程中也同样遇到这些问题。整个公司不同业务方的数据汇聚到数据平台后,对数据的隔离访问尤为重要。在参考Cloudera Sentry项目的基础上,我们结合自身平台需求,开发了Hamza这一Hive计算中间层,兼具权限控制和UDF函数扩展作用。

大致的架构如上图所示。Hamza Core是整个Hamza的核心,主要包括权限信息表的操作、Hook函数的实现、UDF扩展函数的实现及其他公用类;Hamza Client是对Hive JDBC模块的简单扩展,支持传递用户名、密码和客户端IP,业务方使用将用其代替原有Hive JDBC包;Hamza Auth是开放的权限信息维护接口及对应Web界面,便于管理员和普通Hive用户查看自己的库表,及被授权的权限信息等。

2、编译开发

项目结构如上图所示。hamza-auth是web模块,依赖hamza-core;hamza-client是jar形式的,也依赖hamza-core;hamza-dist是打包编译用,会将工程打成发布包。相关全局配置参数在总控pom.xml中修改,其他地方的属性文件不需要修改。

当这些配置完成后,将hive源码导入eclipse, 同时hamza也已被导入eclipse,工程都置为打开状态。然后以调试模式启动hive(命令行形式直接执行hive --debug,jdbc形式执行hive --debug --service HiveServer2 &),这样hive便在8000端口监听等待远程调试连接了。

然后在hive源码及hamza源码自己关心的代码处打上断点。接着新建一个Remote Java Application,IP填写hive的机器IP,端口填写8000,最后点击“debug”按钮。

3、版本使用

的库表。

资源:

http://archive-primary.cloudera.com/cdh5/cdh/5/

http://hive.apache.org/

https://blogs.apache.org/sentry/

时间: 2024-11-07 21:24:23

Hive权限控制中间层-Hamza的相关文章

HADOOP docker(七):hive权限管理

1. hive权限简介1.1 hive中的用户与组1.2 使用场景1.3 权限模型1.3 hive的超级用户2. 授权管理2.1 开启权限管理2.2 实现超级用户2.3 实现hiveserver2用户名密码2.4 授权2.4.1 角色管理2.4.2 权限管理2.4.3 操作与权限对应关系 文档链接: hive权限管理 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization#LanguageManu

Hive权限之改进

不足 即使开启hive权限认证的情况下,不论什么用户仍然是超级用户.能够通过grant给不论什么人赋予不论什么权限,这样权限认证基本没有意义.因此必须在开启权限认证的同一时候.对运行grant/revoke的实体进行限制,比方仅仅有admin才干 grant privilege on database,仅仅有table owner才干grant privilege on table.BIP中hive眼下是没有开启权限认证的. 改进 针对hive权限的不足以及bip对hive的使用场景.改进后的h

为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制

4. 为CDH 5集群添加Kerberos身份验证4.1 安装sentry1.点击"操作","添加服务":2.选择sentry,并"继续": 3.选择一组依赖关系 4.确认新服务的主机分配 5.配置存储数据库:在mysql中创建对应用户和数据库: mysql>create database sentry default character set utf8 collate utf8_general_ci; mysql>grant al

hive权限管理

1开启hive权限管理配置 <property> <name>hive.metastore.authorization.storage.checks</name> <value>true</value> </property> <property><name>hive.metastore.execute.setugi</name><value>false</value><

Hive权限介绍

一.开启权限 目前hive支持简单的权限管理,默认情况下是不开启,这样所有的用户都具有相同的权限,同时也是超级管理员,也就对hive中的所有表都有查看和改动的权利,这样是不符合一般数据仓库的安全原则的.Hive可以是基于元数据的权限管理,也可以基于文件存储级别的权限管理,此次以介绍MetaData权限管理为主.通过以下配置开启Hive身份认证功能进行权限检查: <property> <name>hive.security.authorization.enabled</name

ZooKeeper系列(五)—— ACL 权限控制

一.前言 为了避免存储在 Zookeeper 上的数据被其他程序或者人为误修改,Zookeeper 提供了 ACL(Access Control Lists) 进行权限控制.只有拥有对应权限的用户才可以对节点进行增删改查等操作.下文分别介绍使用原生的 Shell 命令和 Apache Curator 客户端进行权限设置. 二.使用Shell进行权限管理 2.1 设置与查看权限 想要给某个节点设置权限 (ACL),有以下两个可选的命令: # 1.给已有节点赋予权限 setAcl path acl

rbac 权限控制

RBAC 的控制,大致是通过将角色的权限控制,来控制用户的权限. 需要构建的表为 用户表(user) ,角色表(role),节点表(node),三张主表 , 节点表内记录的是所有的权限和方法. 2张关联表,是为了关联3张数据表的,分别未 角色用户表(user_role),角色权限表(role_node),也可将两张表写成字段分别加入到用户表和权限表内; 废话不多说看下,键表语句如下 用户表: CREATE TABLE `wj_admin` ( `id` int(11) NOT NULL AUTO

译-BMC Remedy Action Request System权限控制概述

原文链接:Access control overview 说明: BMC Remedy Action Request System是BMC ITSM产品平台,简称AR 或者Remedy,可实现基于ITIL标准的整个IT管理流程的实施定制.该平台可实现多种权限级别的管理,包括人员.组.角色,以及表.字段.行级别等.本文可以用作其他对权限要求比较精细的系统参考. 为了便于理解,部分名词翻译如下: Server:服务器Form (or table):表单Field (or column):字段Acti

基于MVC4+EasyUI的Web开发框架形成之旅--权限控制

我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大概介绍了基于MVC的Web开发框架的权限控制总体思路.其中的权限控制就是分为"用户登录身份验证"."控制器方法权限控制"."界面元素权限控制"三种控制方式,可以为Web开发框架本身提供了很好用户访问控制和权限控制,使得用户界面呈现菜单.Web界面的按钮和内容.Action的提交控制,均能在总体权限功能分配和控制之下. 本篇文章主要细化这三个方面