根据提交查询的用户,为Presto强制执行hive sql标准安全性

问题描述 投票:0回答:1

在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。

请高度赞赏任何建议。

hadoop hive prestodb
1个回答
0
投票

虽然这不是您喜欢设置环境的方式,但这是我如何通过成功保护presto和hive:

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

然后用户可以访问:

  • 蜂巢,谢谢kerberos安全
  • presto,感谢presto ssl /密码安全
© www.soinside.com 2019 - 2024. All rights reserved.