根据提交查询的用户强制为presto执行HiveSQL标准安全性

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

在普雷斯托我设置了 hive.security 属性到 sql-standard 但结果是,对于任何用户和任何表(无论从配置单元授予的权限如何),每当我尝试运行select查询时,都会得到: Query 123456789 failed: Access Denied: Cannot select from table..... 在beeline中运行的相同查询返回正确的结果(即,根据授权)。
有关我的配置的更多详细信息: hive.metastore.authentication.typeNONE ,没有kerberos。目前,我只希望授权遵循授予提交查询的用户的权限。 hive.hdfs.impersonation.enabled 在这种情况下应该没有什么区别,因为presto当前不支持在访问配置单元元存储时模拟最终用户。事实上,这没有任何区别。
普雷斯托版本是最新的0.195。
除了上面列出的两个属性之外,配置单元连接器还有一个默认配置。
我尝试将表上的select授予特定用户。授权允许该用户在配置单元中进行查询,而不是在presto中。
我尝试使用presto cli和通过jdbc使用gui客户端(即datagrip)连接到presto。
如有任何建议,敬请谅解。

yrdbyhpb

yrdbyhpb1#

虽然这并不是您想要设置环境的方式,但下面是我如何成功地保护presto和hive的:
为配置单元设置kerberos
使用kerberos为presto设置配置单元连接器,并在所有配置单元表上提供完全授权
使用ssl创建presto密码插件
创建一个presto访问控制,将用户/表模式访问Map到jdbc或presto cli及其登录/密码。
创建一个presto记录器插件,跟踪任何错误的密码尝试。
然后用户可以访问:
由于kerberos安全,hive
普雷斯托,由于普雷斯托ssl/密码安全

相关问题