命名空间的概念为即将到来的多租户特性打下基础:
HBase的访问控制相关命令主要包括grant/revoke/user_permission,其中grant表示授权,revoke表示回收权限,user_permission用于查询权限。
hbase> grant <user> <permissions> [ @<namespace> [ <table>[ <column family>[ <column qualifier> ] ] ] ]
hbase> revoke <user> <permissions> [ @<namespace> [ <table> [ <column family> [ <column qualifier> ] ]
hbase> user_permission <table>
#1 给root用户授权全局的CA
grant 'root','RWXCA'
#2 回收root用户全局的CA
revoke 'root','RWXCA'
#3 给root用户namespace权限
grant 'root','RWXCA','@TRAF_1500000'
#4 给root用户table权限
grant 'root','RWXCA','agatha'
#5 查看所有用户权限
user_permission
#6 查看某个表的权限
user_permission 'agatha'
#7 查看某个namespace的权限
user_permission '@TRAF_1500000'
#8 创建namespace
create_namespace 'ns1'
#9 列出所有namespace
list_namespace
#10 查看namespace
describe_namespace 'ns1'
#11 删除namespace
drop_namespace 'ns1'
#12 在namespace下创建表
create 'ns1:testtable', 'cf1','cf2'
#13 查看namespace下的表
list_namespace_tables 'ns1'
<property>
<name>hbase.superuser</name>
<value>niit01</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>