HBase的权限管理依赖协协处理器。所以我们需要配置hbase.security.authorization=true
,以及hbase.coprocessor.master.classes
和hbase.coprocessor.master.classes
使其包含org.apache.hadoop.hbase.security. access.AccessController
来提供安全管控能力。所以需要设置下面参数(hbase-site.xml配置文件):
<property>
<name>hbase.superuser</name>
<value>hbase</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value> </property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.rpc.engine</name>
<value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property>
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
HBase提供的五个权限标识符:RWXCA,分别对应着
HBase提供的安全管控级别包括:
Superuser:拥有所有权限的超级管理员用户。通过hbase.superuser参数配置
Global:全局权限可以作用在集群所有的表上。
Namespace :命名空间级。
Table:表级。
ColumnFamily:列簇级权限。
Cell:单元级。
READ('R')
, WRITE('W')
, EXEC('X')
, CREATE('C')
, ADMIN('A')
HBase提供的安全管控级别包括:
Superuser:拥有所有权限的超级管理员用户。通过hbase.superuser参数配置
Global:全局权限可以作用在集群所有的表上。
Namespace :命名空间级。
Table:表级。
ColumnFamily:列簇级权限。
Cell:单元级。
配置完后启动hbase,并进入hbase shell执行grant 'Administrator' , 'RWCXA'。其中Administrator是外部主机名。