hive权限控制---限定用户的某些操作权限
package com.lxw.hive; import org.apache.hadoop.hive.ql.parse.ASTNode; import org.apache.hadoop.hive.ql.parse.AbstractSemanticAnalyzerHook; import org.apache.hadoop.hive.ql.parse.HiveParser; import org.apache.hadoop.hive.ql.parse.HiveSemanticAnalyzerHookContext; import org.apache.hadoop.hive.ql.parse.SemanticException; import org.apache.hadoop.hive.ql.session.SessionState; /** * 只运行Admin用户(lxw用户)执行创建数据库,赋权等操作。 */ public class MyAuthHook extends AbstractSemanticAnalyzerHook { private static String admin = "lxw"; @Override public ASTNode preAnalyze(HiveSemanticAnalyzerHookContext context, ASTNode ast) throws SemanticException { switch (ast.getToken().getType()) { case HiveParser.TOK_CREATEDATABASE: case HiveParser.TOK_DROPDATABASE: case HiveParser.TOK_CREATEROLE: case HiveParser.TOK_DROPROLE: case HiveParser.TOK_GRANT: case HiveParser.TOK_REVOKE: case HiveParser.TOK_GRANT_ROLE: case HiveParser.TOK_REVOKE_ROLE: String userName = null; if (SessionState.get() != null && SessionState.get().getAuthenticator() != null) { userName = SessionState.get().getAuthenticator().getUserName(); } if (!admin.equalsIgnoreCase(userName)) { throw new SemanticException(userName + " can't use ADMIN options, except " + admin + "."); } break; default: break; } return ast; } }
打包放到$HIVE_HOME/lib目录下;
修改hive-site.xml
<property> <name>hive.semantic.analyzer.hook</name> <value>com.lxw.hive.MyAuthHook</value> </property>
运行结果:
hive> drop database lxw2; FAILED: Error in semantic analysis: lxw2 can't use ADMIN options, except lxw. hive> create database lxw3; FAILED: Error in semantic analysis: lxw2 can't use ADMIN options, except lxw. hive> grant select on database lxw2 to user lxw2; FAILED: Error in semantic analysis: lxw2 can't use ADMIN options, except lxw.
相关推荐
eternityzzy 2020-07-19
genshengxiao 2020-06-26
victorzhzh 2020-06-16
archive 2020-05-28
taisenki 2020-05-27
archive 2020-07-30
成长之路 2020-07-28
taisenki 2020-07-05
tugangkai 2020-07-05
SignalDu 2020-07-05
zlsdmx 2020-07-05
tomson 2020-07-05
tugangkai 2020-07-04
tomson 2020-07-05
Zhangdragonfly 2020-06-28
成长之路 2020-06-26