情景:尝试在 Azure HDInsight 中创建 Apache Hive 表时出现“权限被拒绝”错误

本文介绍在 Azure HDInsight 群集中使用交互式查询组件时出现的问题的故障排除步骤和可能的解决方案。

问题

尝试创建表时,会看到以下错误:

java.sql.SQLException: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [hdiuser] does not have [ALL] privilege on [wasbs://data@xxxxx.blob.core.chinacloudapi.cn/path/table]

如果运行以下 HDFS 存储命令,会看到类似的错误消息:

hdfs dfs -mkdir wasbs://data@xxxxx.blob.core.chinacloudapi.cn/path/table

原因

是否能够在 Apache Hive 中创建表由应用于群集的存储帐户的权限决定。 如果群集存储帐户权限不正确,则将无法创建表。 此错误表示你可能为表创建操作设置了正确的 Ranger 策略,但仍会看到“权限被拒绝”错误。

解决方法

此错误是由于对所使用的存储容器缺乏足够的权限造成的。 创建 Hive 表的用户需要对容器具有“读取”、“写入”和“执行”权限。

后续步骤

如果你的问题未在本文中列出,或者无法解决问题,请访问以下渠道之一获取更多支持:

  • 如果需要更多帮助,可以从 Azure 门户提交支持请求。 从菜单栏中选择“支持” ,或打开“帮助 + 支持” 中心。