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

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

推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f

1 问题现象

测试环境
1.Redhat7.4
2.集群启用了Sentry和Kerberos
3.CM/CDH6.2.0

在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权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值