权限控制范围包括库级别(全局)、表级别、列簇级别和列级别,目前总共有五种级别,分别是 READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A') 其中Exec 目前没有使用,CREATE,ADMIN只涉及库级别和表级别,列簇级别和列级别只涉及到READ和WRITE权限。
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的RBAC模型,内建数据库角色...
安全性和权限管理**:HBase提供了细粒度的安全控制机制,可以通过ACL(Access Control List)来管理用户的访问权限,确保数据安全。 **5. 集成与生态**:HBase不仅与HDFS紧密结合,还与Hadoop生态系统中的其他组件...
这些配置项主要是为了启用安全特性,如RPC引擎、令牌提供者以及访问控制器等,从而为审计日志提供支持。 ##### 2. 配置`log4j.properties` 除了修改`hbase-site.xml`外,还需要配置`log4j.properties`文件来指定...
Apache Ranger作为一款强大的安全管理框架,为Hadoop生态系统提供了精细的访问控制和审计功能。本文将深入探讨Ranger与HBase的集成,具体聚焦于"ranger-2.1.0-hbase-plugin"这一组件。 首先,了解Ranger的核心功能...
1. 认证授权:为了保护数据安全,需要在HBase和SpringBoot应用中实现认证和授权机制,限制对HBase的访问权限。 2. 性能优化:合理设计RowKey,避免热点问题;使用HBase的Compaction和Split机制,保持Region的平衡;...
#### HBase访问接口详解 HBase提供了多种访问接口,以满足不同场景的需求: 1. **Native Java API**:这是最常见的访问方式,适用于Hadoop MapReduce Job并行处理HBase表数据。 2. **HBase Shell**:一个命令行...
HBase的安全章节讲述了如何安全地访问HBase集群,包括安全客户端访问、访问控制和安全批量加载。HBase支持通过Kerberos进行认证,以保证数据的安全性。 ### 架构 HBase的架构包括Master服务器、RegionServer、...
- 阐述了HBase的安全机制,包括如何安全地访问HBase,以及HBase的访问控制机制。 - 提到了如何进行安全批量加载。 9. 架构部分: - 提供了HBase架构的概述,包括各个组件的职责和交互方式。 - 介绍了目录表、...
HBase 权限配置是指在 HBase 中对用户的访问控制和权限管理。通过配置 HBase 权限,可以对不同的用户或组授予不同的权限,以确保数据的安全和可靠性。 一、HBase 权限配置的重要性 HBase 权限配置是非常重要的,...
HBase是一个分布式的、基于列族的NoSQL数据库,它构建在Hadoop之上,提供了高性能、低延迟的数据存储和访问能力。本教程将详细介绍如何使用Java API来创建和删除HBase表,并针对不使用Maven的初学者提供必要的jar包...
HBase是建立在Hadoop文件系统(HDFS)之上,提供实时读写操作的非关系型数据库。它的设计目标是处理大规模数据集,支持大数据分析场景。HBase的数据模型基于列族,每个表由行和列族组成,列族下可以有任意多的列。 ...
**HBase**,全称为Hadoop Database,是一款构建在Hadoop之上、面向列的分布式数据库系统。它具备高可靠性、高性能和可扩展性等特点,能够在成本相对低廉的硬件设备上构建大规模的数据存储集群。 #### 二、HBase的...
本文主要介绍了三种HBase的权限管理方式,包括静态数据透明加密、Kerberos认证以及用户权限访问控制。 首先,静态数据透明加密是一种保护存储在HDFS(Hadoop Distributed File System)上的HFile和WAL(Write-Ahead...
本资料“大数据技术之HBase的面试题.zip”提供了关于HBase的面试问题,帮助求职者或专业人士深入理解HBase的核心概念、功能及实际应用。下面,我们将详细探讨这些面试题所涵盖的知识点。 1. **HBase简介**: - ...
HBase的数据模型是其核心部分之一。手册详细说明了概念视图、物理视图、命名空间、表、行、列族、单元格以及如何进行数据模型操作。它还讨论了版本控制、排序顺序、列元数据、联结操作、ACID属性、表架构设计的最佳...
1. 面向列:HBase 是面向列的存储和权限控制,并支持独立索引。 2. 多版本:HBase 每一个列的存储有多个 Version。 3. 稀疏性:为空的列不占用存储空间,表可以设计得非常稀疏。 4. 扩展性:底层依赖 HDFS。 5. 高...
5. **Cell级别的ACL**:HBase 2.2.3引入了细粒度的访问控制列表,允许对单个单元格进行权限控制,增强了数据安全性。 6. **Backward Compatibility**:尽管增加了许多新特性,但2.2.3版本仍保持向后兼容,使得升级...
HBase,作为Apache软件基金会的一个开源项目,是构建在Hadoop文件系统(HDFS)之上的分布式、面向列的数据库,专为处理大规模数据而设计。标题中的“hbase-2.4.11-bin.tar.gz”是指HBase的2.4.11稳定版本的二进制...
6. **安全性与权限**:Java-HBase开发包也支持HBase的安全特性,包括认证、授权和审计,这使得开发者可以控制对HBase数据的访问。 7. **异步API**:除了传统的同步API,1.2版本可能引入了异步操作接口,如`...