配置sentry为不同的用户显示/隐藏不同的数据库

webghufk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(559)

我有一个运行cdh-5.7.0的集群,并配置了以下设置
使用kerberos的hadoop
具有ldap身份验证的配置单元
具有sentry授权的hive(存储在jdbc derby中的规则)
我的目标是限制用户查看我的系统中存在哪些数据库。例如。:
user-a应该只在执行时看到数据库db-a show databases user-b应该只在执行时看到数据库db-b show databases 我看了那篇文章https://blog.cloudera.com/blog/2013/12/how-to-get-started-with-sentry-in-hive/ 为了实现这一点。但没有成功。我的成就是
user-a只能从db-a选择表,不能从db-b选择表。
user-b只能从db-b而不能从db-a选择表。
但两者在执行时仍然可以看到db-a和db-b show databases . 但我想避免这样。
从你那里得到的任何关于规则或设置如何运行的提示?
谢谢,马尔科

xlpyo6sf

xlpyo6sf1#

根据您的描述和我从现有设置中学到的知识,在sentry v1.6+的情况下,您需要将以下属性添加到 hive-site.xml :

<property>
  <name>hive.metastore.filter.hook</name>
  <value>org.apache.sentry.binding.metastore.SentryMetaStoreFilterHook</value>
</property>

即使您使用的是cdh5.7,mapr5文档也提供了一些上下文。以及哨兵服务互动。
重新启动配置单元服务后,您应该能够看到预期的结果。

相关问题