-
hive的权限控制流程
-
在driver的compile方法中,检测时会进行权限检测
-
进而判断是否使用V2版的权限
-
判断标准根据加载的不同,自己配置了哪种方式则使用哪种,如果未指定v1的安全模式,则加载v2的版本,我们后续则根据v2进行配置。
-
-
可以看到加载v2的过程需要一个
HiveAuthorizerFactory。
-
所以我们需要自己实现这个
HiveAuthorizerFactory
-
-
实现这个需要返回一个HiveAuthorizer。我们也要一并实现出来。
-
从Hive自带的
SQLStdHiveAuthorizationValidator 检测类中,我们可以看出:
-
-
-
最终如果权限不通过,需要抛出一个HiveAccessControlException的异常,即可终止运行,如果不抛,则通过
-
实现
Factory
其中主要就是重写checkPrivileges方法。
默认的方式呢 是
SQLStdHiveAuthorizationValidator
我们可以参考 通过自定义的方式对表 分区 字段进行限制
如何生效:
通过此参数加载默认的authorization manager,所以将项目打包,放在hive clsspath下,修改hive-site.xml 将manager指向自己的包名.类名即可加载。