EsgynDB 使用Sentry配置Hive访问权限失效

现象

在有Sentry对Hive做权限访问控制的情况下,发现使用trafodion用户(属于trafodion用户组)仍然有对所有Hive表的访问权限。

分析

首先使用以下两条命令查看trafodion用户以及trafodion用户组对表是否具有权限,

java com.esgyn.security.util.UserPrivTest  trafodion hive.hive.t1
java com.esgyn.security.util.AuthTest trafodionhive.hive.t1

以上两条命令中,其中第一条用于检查trafodion用户是否有权限访问Hive中的t1表,第二条用于检查trafodion用户组是否有权限访问t1表。
以上输出结果发现,trafodion用户和组确实没有相关的权限,因此定位与数据库的DCS服务有关,应该属于数据库本身的问题。

解决

通过cat $TRAF_HOME/etc/ms.env | grep SENTRY找到以下两行,

SENTRY_SECURITY_FOR_HIVE=
SENTRY_SECURITY_GROUP_MODE=SHELL

修改为

SENTRY_SECURITY_FOR_HIVE=TRUE
SENTRY_SECURITY_GROUP_MODE=SHELL

之后重启数据库生效。

猜你喜欢

转载自blog.csdn.net/Post_Yuan/article/details/81210479