Hbase权限控制简介
Hbase的权限控制是通过AccessController Coprocessor协处理器框架实现的,可实现对用户的RWXCA的权限控制。
配置:hbase-site.xml
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.superuser</name>
<value>root</value>
</property>
使用
我们可以授予和撤销HBase用户的权限。也有出于安全目的,三个命令:grant, revoke 和 user_permission
- grant
grant命令授予特定的权限,如读,写,执行和管理表给定一个特定的用户。 grant命令的语法如下
hbase> grant <user> <permissions> [<table> [<column family> [<column; qualifier>]]
我们可以从RWXCA组,其中给予零个或多个特权给用户
- R - 代表读取权限
- W - 代表写权限
- X - 代表执行权限
- C - 代表创建权限
- A - 代表管理权限
如:
hbase(main):018:0> grant 'hadoop', 'RWXCA'
- revoke
revoke命令用于撤销用户访问表的权限。它的语法如下:
hbase> revoke <user>
下面的代码撤消名为“hadoop”用户的所有权限。
hbase(main):006:0> revoke 'hadoop'
- user_permission
此命令用于列出特定表的所有权限。 user_permission的语法如下:
hbase>user_permission ‘tablename’
下面的代码列出了“emp”表的所有用户权限。
hbase(main):013:0> user_permission 'emp'