`
superlxw1234
  • 浏览: 550786 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:44356
社区版块
存档分类
最新评论

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.
 
分享到:
评论
3 楼 黎明lm 2012-12-05  
是啊.我今天调试了一下,不过不是很完美,虽然起到了grant的效果.不过遇到两个问题:
1.grant 授权语句 任何用户只要进入 hive cli下都可以执行 grant 语句
2.grant all table tablename to user username  这个username 不能有.号  如 rongneng.wei 这样的中间带 . 的都不行,我们系统基本所有用户都是中间 带. 的 。能留下qq么 我加您
2 楼 superlxw1234 2012-12-05  
黎明lm 写道
hive 怎么针对某一一个表 做权限控制呢?你这个控制的范围太大了 ,这种形式 基本不需要修改 hive源码 的 感觉


和传统数据库一样,hive也可以用grant语句对某个schema或者表赋权限。
1 楼 黎明lm 2012-12-05  
hive 怎么针对某一一个表 做权限控制呢?你这个控制的范围太大了 ,这种形式 基本不需要修改 hive源码 的 感觉

相关推荐

    含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz

    含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz 含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz 含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-...

    apache-hive-2.1.1-bin.tar

    apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-...

    Hive-2.1.1-CDH-3.6.1 相关JDBC连接驱动 Jar 包集合

    02、hive-exec-2.1.1-cdh6.3.1.jar 03、hive-jdbc-2.1.1-cdh6.3.1.jar 04、hive-jdbc-2.1.1-cdh6.3.1-standalone.jar 05、hive-metastore-2.1.1-cdh6.3.1.jar 06、hive-service-2.1.1-cdh6.3.1.jar 07、libfb303-...

    hive驱动包hive-jdbc-uber-2.6.5.0-292.jar(用户客户端连接使用)

    在Dbeaver中,为了连接到Hive服务器,用户需要配置Hive的JDBC驱动,而**hive-jdbc-uber-2.6.5.0-292.jar**就是这个配置过程中不可或缺的部分。用户需要将此驱动添加到Dbeaver的驱动定义中,指定正确的URL、用户名和...

    Apache Hive(apache-hive-3.1.3-bin.tar.gz)

    Apache Hive(apache-hive-3.1.3-bin.tar.gz、apache-hive-3.1.3-src.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache...

    hive-jdbc-uber-3.1.2+yanagishima-18.0

    Yanagishima不仅简化了对Hive、Presto和Trino等查询引擎的接口,还提供了权限控制,确保只有授权用户可以执行查询。它的核心功能包括SQL查询的提交、结果的展示以及查询历史的记录,为数据分析团队提供了一个便捷的...

    DBeaver链接hive驱动包下载: hive-jdbc-uber-2.6.5.0-292.jar

    《DBeaver与Hive连接:hive-jdbc-uber-2.6.5.0-292.jar驱动详解》 在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,广泛用于数据查询和分析。而DBeaver,作为一款跨平台的数据库管理工具,以其用户友好的...

    hive-jdbc-3.1.2-standalone

    hive-jdbc-3.1.2-standalone适用于linux

    Apache Hive(apache-hive-1.2.2-bin.tar.gz)

    Apache Hive(apache-hive-1.2.2-bin.tar.gz、apache-hive-1.2.2-src.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache...

    Apache Hive(hive-storage-2.8.1.tar.gz)

    Apache Hive(hive-storage-2.8.1.tar.gz、hive-storage-2.7.3.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache ...

    hive-jdbc-uber-2.6.5.0-292.zip

    如果内置的驱动无法正常工作,用户可以手动指定一个外部JDBC驱动,如这个“hive-jdbc-uber-2.6.5.0-292.jar”。 在压缩包内只有一个文件“hive-jdbc-uber-2.6.5.0-292.jar”,这意味着这个JAR包含了所有必要的类和...

    hive-jdbc-jar-多版本.zip

    "hive-jdbc-jar-多版本.zip"是一个压缩包,包含了不同版本的Hive JDBC Uber Jars,覆盖了从1.5到1.8的多个Hive版本,适应不同的项目需求。 首先,我们要理解Uber JAR的概念。Uber JAR(也称为Shaded JAR)是一个...

    hive-jdbc-uber-2.6.5.jar

    hive-jdbc-uber-2.6.5.0-292.jar DbVisualizer (as of version 9.5.5) Below is an example configuration using DbVisualizer: Open the Diver Manager dialog ("Tools" &gt; "Driver Manager...") and hit the ...

    hive-jdbc-1.2.1-standalone.jar

    hive-jdbc-1.2.1-standalone.jar hive-jdbc驱动jar包,欢迎下载

    hive-jdbc-2.1.0-standalone.jar

    hive-jdbc-2.1.0-standalone.jar

    hive-hcatalog-core-1.2.1.jar

    hive-hcatalog-core-1.2.1.jarhive-hcatalog-core-1.2.1.jarhive-hcatalog-core-1.2.1.jar

    hive-jdbc-2.3.7-standalone.jar

    hive-jdbc-2.3.7-standalone,可用dbeaver连接hive数据库,在工具中进行数据库记录的新增改查

    hive-jdbc-2.1.1-cdh6.2.0-standalone.jar

    hive-jdbc-2.1.1-cdh6.2.0(ieda等jdbc链接hive2.1.1);cdh6.2.0安装的hive2.1.1

    hive-jdbc-3.1.2-standalone.jar

    Hive连接的jar包——hive-jdbc-3.1.2-standalone.jar,使用数据库连接软件连接数据仓库时需要使用相应的驱动器驱动,希望对大家有所帮助

Global site tag (gtag.js) - Google Analytics