根据提交查询的用户

时间:2018-03-01 17:23:59

标签: hadoop hive presto

在presto中,我将hive.security属性设置为sql-standard但是因此,对于任何用户和任何表(无论Hive授予的权限),每当我尝试运行select查询时,我都会得到:

Query 123456789 failed: Access Denied: Cannot select from table.....

在Beeline中运行的相同查询会返回正确的结果(即根据授权)。

有关我的配置的更多详细信息:

  • hive.metastore.authentication.typeNONE,没有kerberos到位。目前我只希望授权遵循授予提交查询的用户的权限。
  • hive.hdfs.impersonation.enabled在这种情况下不应该有所作为,因为Presto目前不支持在访问Hive Metastore时模仿最终用户。实际上,它没有任何区别。
  • Presto版本是0.195,最新版本。
  • 除了上面列出的两个属性外,配置单元连接器具有默认配置。
  • 我尝试在桌面上向特定用户授予选择权。该授权允许该用户在配置单元中查询,而不是在presto中查询。
  • 我尝试使用Presto cli和使用gui客户端(即DataGrip)通过jdbc连接到presto。

请高度赞赏任何建议。

1 个答案:

答案 0 :(得分:0)

虽然这不是您喜欢设置环境的方式,但这是我如何保护presto& amp;蜂巢成功:

  • 为hive设置kerberos
  • 使用kerberos设置一个hive连接器,以便在所有配置单表上使用完全授权
  • 使用ssl
  • 创建一个presto密码插件
  • 创建一个presto访问控制,使用jdbc或presto-cli及其登录名/密码映射用户/表模式访问。
  • 创建一个presto logger插件,用于跟踪任何错误的密码尝试。

然后用户可以访问:

  • hive,感谢kerberos安全
  • presto,感谢presto ssl / password security