更新时间:2024-11-29 GMT+08:00
Ranger鉴权与ACL鉴权
问题
查询或建表时报错:
- 使用Ranger鉴权失败。
org.apache.ranger.authorization.spark.authorizer.SparkAccessControlException: Permission denied: user [username] does not have [SELECT] privilege on [databasename/tablename]
- 使用ACL鉴权失败。
org.apache.hadoop.security.AccessControlException: Permission denied
原因
- 未配置对应鉴权方式中用户的权限。
- 配置用户权限后未使用对应的鉴权方法:添加Spark的Ranger访问权限策略后使用ACL鉴权或添加ACL访问权限策略后使用ranger鉴权。
解决方法
- 查看当前使用的鉴权方法:
方法一:在spark-defaults.conf配置文件中查看spark.ranger.plugin.authorization.enable参数值,true表示使用的是Ranger鉴权,false表示使用的是ACL鉴权。
方法二:在Spark应用中执行set spark.ranger.plugin.authorization.enable命令,查看结果true表示使用的是Ranger鉴权,false表示使用的是ACL鉴权。
- 配置访问权限策略:
Ranger访问权限策略:具体请参考添加Spark的Ranger访问权限策略。
ACL访问权限策略:具体请参考SparkSQL权限管理(安全模式)。
父主题: Spark使用Ranger场景常见问题