在 Hive 中授予权限

Posted

技术标签:

【中文标题】在 Hive 中授予权限【英文标题】:Grant Permission in Hive 【发布时间】:2015-05-06 14:49:19 【问题描述】:

我正在尝试使用 Hortonworks Sandbox HDP2.2 作为单节点系统在 Hive 14.0 上设置授予权限。这个问题类似于 3 月份未回答的问题:grant permissions in hive does not work on hdp2.2。

我按照a Hive-Wiki的配置步骤操作。

登录 hive shell (ssh with root) 后,我尝试了:

CREATE ROLE testing;

FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。无法为 root 检索角色:此配置中禁用了远程 Metastore 的 Metastore 授权 api 调用。

如果我对另一个使用 hue / beeswax 的用户尝试相同的操作,则查询完成。如果我这样做了

SHOW ROLES;

我收到此错误,没有任何日志详细信息:

预期状态已完成,但发现错误

我的设置是这些(用 blanc 制作标签以在此处显示它们)

hive-site.xml(hive-wiki-link 中列出的那些)

<property>
  <name>hive.server2.enable.doAs</name>
  <value>false</value>
</property>
<property>
  <name>hive.users.in.admin.role</name>
  <value>hue,hive</value>
</property>
<property>
  <name>hive.security.metastore.authorization.manager</name>
  <value>org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider,org.apache.hadoop.hive.ql.security.authorization.MetaStoreAuthzAPIAuthorizerEmbedOnly</value>
</property>
<property>
  <name>hive.security.authorization.manager</name>
  <value>org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdConfOnlyAuthorizerFactory</value>
</property>

hiveserver2-site.xml(所有设置)

<property>
    <name>hive.security.authorization.enabled</name>
    <value>true</value>
</property>
<property>
    <name>hive.security.authorization.manager</name>
    <value>org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory</value>
</property>
<property>
    <name>hive.security.authenticator.manager</name>
    <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
</property>
<property>
    <name>hive.metastore.uris</name>
    <value>''</value>
</property>
<property>
    <name>hive.conf.restricted.list</name>
    <value>hive.security.authorization.enabled,hive.security.authorization.manager,hive.security.authenticator.manager</value>
</property>

希望有人有想法。

[编辑]hive-site.xml 中的设置已经设置 - 我没有做任何更改。

[Edit2]更改设置后,我做了 hiveserver2 restart 并重新启动了沙箱。

[Edit3]每个用户都会收到错误消息,而不仅仅是 root 用户(您可以在错误消息中看到它)。如果我尝试具有管理员角色 (hive-site.xml) 的用户,例如“hive”,我会遇到同样的错误。

【问题讨论】:

【参考方案1】:

能够使其可运行 - thanks to Thejas Nair of Hortonworks。

以下是要点:

您应该使用 Ambari 更改所有设置。 不要更改hive.metastore.uris-setting 手动更改 hive.security.authorization.managerhiveserver2-site.xml 属性 复制hiveserver2-site.xml/etc/hive/conf.server/ 重启 hiveserver2 仅对 SQL 权限使用直线

【讨论】:

以上是关于在 Hive 中授予权限的主要内容,如果未能解决你的问题,请参考以下文章

使用beeline shell拒绝用户匿名的Hive权限

MySQL 查看用户授予的权限

如何授予 Kivy android 脚本的权限?

如何在c#中授予文件夹权限?

在 Spring Security ACL 中授予权限

在 Spring Security ACL 中授予权限