前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0664-6.2.0-用户有CREATE权限建表后但无HDFS文件的ACL访问权限异常分析

0664-6.2.0-用户有CREATE权限建表后但无HDFS文件的ACL访问权限异常分析

作者头像
Fayson
发布2019-07-09 10:08:17
5990
发布2019-07-09 10:08:17
举报
文章被收录于专栏:Hadoop实操Hadoop实操

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

问题现象

  • 测试环境

1.Redhat7.4

2.CDH6.2.0

3.集群启用了Sentry和Kerberos

在C6集群中使用hive管理员创建一个测试库acltest,将该库的CREATE权限赋予ldapff组。ldapff用户在该库下创建的表,在命令行使用hadoop命令没有权限访问该表的hdfs目录,提示没有权限访问。

为ldapff用户授权acltest库的CREATE权限

使用ldapff用户创建测试表,并插入测试数据

在命令行使用hadoop命令访问在acltest库下创建的test表数据目录

2

问题分析

ldapff用户拥有acltest库的CREATE权限,在该库下创建的test表的owner为ldapff,但在HDFS上由于上级目录(/user/hive/warehouse/acltest.db)没有足够的访问权限,导致ldapff用户无法访问自己创建的test表的HDFS目录。

1.当只赋予acltest库的CRETATE权限给ldapff组时,查看/user/hive/warehouse/acltest.db目录的ACL显示如下

可以看到test表的父级目录(/user/hive/warehouse/acltest.db),ldapff组的访问权限为“group:ldapff:---”,因为ldapff组无权限访问表的父级目录,所以即使ldapff是test表的owner也无法正常访问相应的HDFS目录。

2. 需要为ldapff用户授权acltest库的SELECT权限,经过测试为ldapff组赋予了acltest库的SELECT权限后是可以正常访问该表的HDFS目录

查看此时acltest库的HDFS路径ACL权限,显示如下:

显示ldapff组有查看acltest库对应HDFS的读和执行权限,再次访问test表的HDFS路径显示成功

之前Database/Table和HDFS权限的对应关系为:SELECT=READ、ALL=WRITE,在C6中多了一个Privilege为CREATE,这是一个比较特殊的权限,所以无法对应到HDFS上的任何权限上去,而且CREATE权限管理的Object为Database和Table。所以这个CREATE无法直接Mapping到HDFS权限,也就是只能在HDFS文件的ACL上添加owner的rwx权限。

3

总结

通过上述测试以及结合Support给的回复,拥有CREATE权限的用户或组,如果需要访问库下创建的表对应HDFS路径需要赋予该库的SELECT权限。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档