欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

自定义Hive权限控制(1) 设计目标

程序员文章站 2022-05-01 18:45:48
...

由于公司各个部门对 hive 的使用增加,针对 hive 的 权限控制 是必须要开展的一项工作了。针对此事项,最近进行了 hive 源码的查看,并完成了初步的设计和实现基本满足了当前 权限控制 的目标。 目标 1.采用公共模块或者公共配置文件去做用户权限管理。2.每

由于公司各个部门对hive的使用增加,针对hive权限控制是必须要开展的一项工作了。针对此事项,最近进行了hive源码的查看,并完成了初步的设计和实现基本满足了当前权限控制的目标。

目标

1.采用公共模块或者公共配置文件去做用户权限管理。2.每个部门使用不同的账号进行查询Hadoop集群数据。3.所有查询Hadoop集群数据的用户账号都需要经过权限管理模块验证,无权限的操作应该给予提示信息。4.根据各部门的职责限定该部门的人员使用的账号只能查询归属于该部门的数据。5.对于敏感信息应该只有特殊账号才可以进行查询。6.对于每次操作需要记录操作日志(时间,用户名,操作表),日志需要定时备份。

针对以上目标,形成如下任务

1.针对hiveserver增加权限控制功能。2.针对hivelib增加用户权限配置模块。3.针对hiveclient增加用户配置功能。4.扩展hive配置文件,增加4个保留配置。5.提供权限控制的web项目,用于权限配置。

控制内容

1.使用者同一个任务最大使用分区数量。用于控制map任务数量。2.使用者同一个任务最大reduce任务数量。3.使用者可使用的DB。4.使用者可使用的表。(如果该表所对应的db已经配置给该用户,则无需再单独进行配置)。5.使用者不允许访问的特殊列。6.使用者在使用某张表的时候必须使用的列。(暂时没有使用场景)7.针对用户的频道进行分区限制。

本次修改涉及范围

1.hiveserver修改hive-exec-0.8.1.jar,hive-common-0.8.1.jar,主要用于增加权限控制,和增加配置项2.hivelib(公司内部使用的python类库,通过thrift访问hive,抽取数据)修改hiveclient.py,同时增加conf配置。3.修改hiveclient针对conf/hive-site.xml增加配置项。4.利用django完成web权限分配项目。(开发快速)

下一章,将具体介绍如何完成以上步骤。