`
ziye520
  • 浏览: 13449 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hbase 之访问控制

阅读更多

权限控制范围包括库级别(全局)、表级别、列簇级别和列级别,目前总共有五种级别,分别是  READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A') 其中Exec 目前没有使用,CREATE,ADMIN只涉及库级别和表级别,列簇级别和列级别只涉及到READWRITE权限。

Hbase 提供了相应的api 来操作用户的访问控制。涉及的类主要有以下几个

org.apache.hadoop.hbase.security.access.AccessController 

这是对所有访问进行拦截的入口,它既是MasterObserver又是RegionObserver,言下之意,它能拦截所有的操作

org.apache.hadoop.hbase.security.access.AccessControlLists

管理由AccessController 授权的权限列表

org.apache.hadoop.hbase.security.access.TableAuthManager

负责对用户进行权限检测。该类的实例缓存了所有的用户Permission。

 

下面举几个简单的例子。来展示下Hbase 的权限访问控制是如何实现的

	public static void grant(final String userName,final String tableName,final String columnFamily,final String qulifier) 
			throws IOException, 
				   InterruptedException{
		
		User user = User.create(UserGroupInformation.createRemoteUser("root"));
		System.out.println("user.isSecurityEnabled:"+User.isSecurityEnabled());
		
		user.runAs(new PrivilegedExceptionAction<Object>(){
		     @Override
		     public Object run()throws Exception{
			  HTable acl = new HTable(conf, AccessControlLists.ACL_TABLE_NAME);
		        try {
		          BlockingRpcChannel service = acl.coprocessorService(Bytes.toBytes("scores"));
		          AccessControlService.BlockingInterface protocol =
		            AccessControlService.newBlockingStub(service);
		          ProtobufUtil.grant(protocol, userName, TableName.valueOf(tableName),
		            Bytes.toBytes(columnFamily), Bytes.toBytes(qulifier), Action.READ,Action.WRITE);
		        } finally {
		          acl.close();
		        }
		        
		        return null;
		        }
		        }
		     );
	}

 

分享到:
评论

相关推荐

    基于HBase的细粒度访问控制方法研究

    为增强HBase的安全访问控制能力,提出一种针对HBase的细粒度访问控制方法。该方法通过修改优化HBase源码,扩展访问控制权限、重写访问控制器达到细粒度访问控制的目的。归纳出应用于HBase的RBAC模型,内建数据库角色...

    HBase学习利器:HBase实战

    安全性和权限管理**:HBase提供了细粒度的安全控制机制,可以通过ACL(Access Control List)来管理用户的访问权限,确保数据安全。 **5. 集成与生态**:HBase不仅与HDFS紧密结合,还与Hadoop生态系统中的其他组件...

    HBase开启审计日志

    这些配置项主要是为了启用安全特性,如RPC引擎、令牌提供者以及访问控制器等,从而为审计日志提供支持。 ##### 2. 配置`log4j.properties` 除了修改`hbase-site.xml`外,还需要配置`log4j.properties`文件来指定...

    hbase数据可视化系统

    1. 认证授权:为了保护数据安全,需要在HBase和SpringBoot应用中实现认证和授权机制,限制对HBase的访问权限。 2. 性能优化:合理设计RowKey,避免热点问题;使用HBase的Compaction和Split机制,保持Region的平衡;...

    ranger-2.1.0-hbase-plugin.tar.gz

    Apache Ranger作为一款强大的安全管理框架,为Hadoop生态系统提供了精细的访问控制和审计功能。本文将深入探讨Ranger与HBase的集成,具体聚焦于"ranger-2.1.0-hbase-plugin"这一组件。 首先,了解Ranger的核心功能...

    Hadoop之Hbase从入门到精通

    #### HBase访问接口详解 HBase提供了多种访问接口,以满足不同场景的需求: 1. **Native Java API**:这是最常见的访问方式,适用于Hadoop MapReduce Job并行处理HBase表数据。 2. **HBase Shell**:一个命令行...

    HBase官方文档

    HBase的安全章节讲述了如何安全地访问HBase集群,包括安全客户端访问、访问控制和安全批量加载。HBase支持通过Kerberos进行认证,以保证数据的安全性。 ### 架构 HBase的架构包括Master服务器、RegionServer、...

    hbase-2.2.3-bin.tar.gz

    5. **Cell级别的ACL**:HBase 2.2.3引入了细粒度的访问控制列表,允许对单个单元格进行权限控制,增强了数据安全性。 6. **Backward Compatibility**:尽管增加了许多新特性,但2.2.3版本仍保持向后兼容,使得升级...

    Hbase 官方中文文档

    - 阐述了HBase的安全机制,包括如何安全地访问HBase,以及HBase的访问控制机制。 - 提到了如何进行安全批量加载。 9. 架构部分: - 提供了HBase架构的概述,包括各个组件的职责和交互方式。 - 介绍了目录表、...

    hbase 权限配置.docx

    HBase 权限配置是指在 HBase 中对用户的访问控制和权限管理。通过配置 HBase 权限,可以对不同的用户或组授予不同的权限,以确保数据的安全和可靠性。 一、HBase 权限配置的重要性 HBase 权限配置是非常重要的,...

    java操作Hbase之实现表的创建删除源码

    HBase是一个分布式的、基于列族的NoSQL数据库,它构建在Hadoop之上,提供了高性能、低延迟的数据存储和访问能力。本教程将详细介绍如何使用Java API来创建和删除HBase表,并针对不使用Maven的初学者提供必要的jar包...

    hbase访问方式之javaapi共3页.pdf.zip

    HBase是建立在Hadoop文件系统(HDFS)之上,提供实时读写操作的非关系型数据库。它的设计目标是处理大规模数据集,支持大数据分析场景。HBase的数据模型基于列族,每个表由行和列族组成,列族下可以有任意多的列。 ...

    HBase技术介绍.docx

    **HBase**,全称为Hadoop Database,是一款构建在Hadoop之上、面向列的分布式数据库系统。它具备高可靠性、高性能和可扩展性等特点,能够在成本相对低廉的硬件设备上构建大规模的数据存储集群。 #### 二、HBase的...

    大数据技术之HBase的面试题.zip

    本资料“大数据技术之HBase的面试题.zip”提供了关于HBase的面试问题,帮助求职者或专业人士深入理解HBase的核心概念、功能及实际应用。下面,我们将详细探讨这些面试题所涵盖的知识点。 1. **HBase简介**: - ...

    hbase 2.0参考手册

    HBase的数据模型是其核心部分之一。手册详细说明了概念视图、物理视图、命名空间、表、行、列族、单元格以及如何进行数据模型操作。它还讨论了版本控制、排序顺序、列元数据、联结操作、ACID属性、表架构设计的最佳...

    hbase-2.4.11-bin.tar.gz

    HBase,作为Apache软件基金会的一个开源项目,是构建在Hadoop文件系统(HDFS)之上的分布式、面向列的数据库,专为处理大规模数据而设计。标题中的“hbase-2.4.11-bin.tar.gz”是指HBase的2.4.11稳定版本的二进制...

    hbase的rowkey设计与hbase的协处理器运用.docx

    1. 面向列:HBase 是面向列的存储和权限控制,并支持独立索引。 2. 多版本:HBase 每一个列的存储有多个 Version。 3. 稀疏性:为空的列不占用存储空间,表可以设计得非常稀疏。 4. 扩展性:底层依赖 HDFS。 5. 高...

    java-hbase开发包

    6. **安全性与权限**:Java-HBase开发包也支持HBase的安全特性,包括认证、授权和审计,这使得开发者可以控制对HBase数据的访问。 7. **异步API**:除了传统的同步API,1.2版本可能引入了异步操作接口,如`...

    hbase-2.0.2-bin.tar

    9. **Cell级别的安全性**: HBase支持细粒度的访问控制,可以为每个单元格(Cell)设置不同的权限。 10. **Compaction**: HBase会定期进行Major Compaction,合并Region内的HFile,减少文件数量并清理过期数据,优化...

Global site tag (gtag.js) - Google Analytics