我有一个关于 Hadoop 集群上 Sentry 的 Spark 权限的问题。
首先,一些背景 -
- 我正在使用 CDH 版本 5.13.2
- HDFS 上的 ACL 同步已启用
- 禁止模拟
- 授予数据库级别和特定情况下的 URI 授权
设想
有两个数据库,db_a 和 db_b。在 db_a 中有一个从 db_b 中定义的表中选择的视图。
我为在 db_a 上具有读取访问权限(授予选择)的特定用户授予特权。
在 Beeline/Impala/Hue 中,行为符合预期:
- show databases 仅显示 db_a
- 当用户查询 db_a 中的视图时,即使用户对 db_b 没有任何权限,它也能完美运行。
Spark SQL的问题:
- 当同一用户尝试访问 db_a 中的视图时,由于用户无权访问 db_b,因此失败。
同样,具有相同用户的相同查询在 Hive/Impala 中运行良好。
是否有任何配置或解决方法来解决问题?