Apache Sentry:SemanticException 没有有效权限此查询所需的权限

Apache Sentry: SemanticException No valid privileges Required privileges for this query

我有不安全的集群 (CDH 5.4),因为我想为更多用户提供对数据的访问,所以我想打开 Sentry,到目前为止没有 Kerberos(在成功启动 Sentry 之后)。 由于其他人目前可能需要 Impala,我决定在第一阶段将其设置在 Hive 中。

我采取的步骤: 1) 我设置了 2 个用户:hive 和 tuser

tuser - 小组测试 hive - 组蜂巢,zookeeper

小组测试

indexer.access, about.access, beeswax.access, filebrowser.access, hbase.write, hbase.access, help.access, impala.access, jobbrowser.access, 
jobsub.access, metastore.write, metastore.access, oozie.dashboard_jobs_access, oozie.access, pig.access, proxy.access, rdbms.access, 
search.access, security.impersonate, security.access, spark.access, sqoop.access, useradmin.access_view:useradmin:edit_user, useradmin.access, zookeeper.access

组蜂巢

beeswax.access

group hive 具有 admin 角色(第一个解锁锁):

SERVER
server=server1 action=ALL
SERVER
server=server1 action=ALL

群测有角色neco

SERVER
server=server1 action=ALL
URI
server=server1 hdfs://...:8020/user/hive/warehouse action=ALL
DATABASE
server=server1 db=default action=ALL

此外,用户配置单元在sentry.service.admin.group和sentry.service.allow.connect两个集合中。

2)我开启了哨兵 - 在 Hive 中检查哨兵服务从 "none" 到 "Sentry" - 在 Hive 服务高级配置片段(安全阀)中为 sentry-site.xml 插入 <property> <name>sentry.hive.testing.mode</name><value>true</value></property> + 重新启动哨兵

结果: 用户 hive 可以访问 Hive 中的任何内容。这就是我所期待的。

用户 tuser 无法访问 Hive 中的任何内容:Error while compiling statement: FAILED: SemanticException No valid privileges Required privileges for this query: Server=server1->Db=*->Table=+->action=insert;Server=server1->Db=*->Table=+->action=select;

我错过了什么?

最后我被告知出了什么问题:Hue 组必须与名称节点 linux 上的组相同(因为选中了 HDFS org.apache.hadoop.security.ShellBasedUnixGroupsMapping)。在 Impala 的情况下,所有具有 Impala 守护进程的节点必须具有相同的组。

但是,我将取代 LDAP 中的组(选项 org.apache.hadoop.security.LdapGroupsMapping)。