ITPub博客

首页 > 数据库 > NoSQL > Hbase 权限控制

Hbase 权限控制

NoSQL 作者:破棉袄 时间:2015-04-17 13:37:16 0 删除 编辑

  Hbase权限控制范围包括库级别、表级别、列簇级别和列级别,其中EXEC目前只在代码中有定义但没有被用到;CREATE和ADMIN只涉及到表级别和库级别,列簇级别和列级别只涉及到READ和WRITE权限。

表级别

ACLs

Permissions

READ('R')

读取表中任意列簇的数据

WRITE('W')

写表中任意列簇的数据

EXEC('X')

 

CREATE('C')

修改表的属性:add, alter, drop列簇,或者drop表

ADMIN('A')

修改表的属性:add, alter, drop列簇,enable, disable, drop表,或者任意引发Region Assign的操作

列簇/列级别

ACLs

Permissions

READ('R')

读取指定列簇/列中的数据

WRITE('W')

向指定列簇/列中写数据

 

1.1      鉴权操作映射

ACLs

Permissions

READ('R')

Get, Scan, or Exists calls

WRITE('W')

Put, Delete, LockRow, UnlockRow, IncrementColumnValue,

CheckAndDelete, CheckAndPut, Flush, & Compact

EXEC('X')

 

CREATE('C')

Create, Alter, & Drop

ADMIN('A')

Enable, Disable, MajorCompact, Grant, Revoke, & Shutdown



配置:

HBase的权限管理依赖协协处理器。所以我们需要配置hbase.security.authorization=true,以及hbase.coprocessor.master.classes和hbase.coprocessor.master.classes使其包含org.apache.hadoop.hbase.security. access.AccessController来提供安全管控能力。所以需要设置下面参数:
        

点击(此处)折叠或打开

  1. <property>
  2.       <name>hbase.superuser</name>
  3.       <value>hbase</value>
  4. </property>
  5. <property>
  6.     <name>hbase.coprocessor.region.classes</name>
  7. <value>org.apache.hadoop.hbase.security.access.AccessController</value> </property>
  8.   <property>
  9.     <name>hbase.coprocessor.master.classes</name>
  10.     <value>org.apache.hadoop.hbase.security.access.AccessController</value>
  11.   </property>
  12.   <property>
  13.     <name>hbase.rpc.engine</name>
  14.     <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
  15.   </property>
  16. <property>
  17.       <name>hbase.security.authorization</name>
  18.       <value>true</value>
  19.   </property>

我们可以授予和撤销HBase用户的权限。也有出于安全目的,三个命令:grant, revoke 和 user_permission.。

grant

grant命令授予特定的权限,如读,写,执行和管理
表给定一个特定的用户。 grant命令的语法如下:

hbase> grant   [<table> [<column family> [<column; qualifier>]]

我们可以从RWXCA组,其中给予零个或多个特权给用户

  • R - 代表读取权限
  • W - 代表写权限
  • X - 代表执行权限
  • C - 代表创建权限
  • A - 代表管理权限

下面给出是为用户“Tutorialspoint'授予所有权限的例子。

hbase(main):018:0> grant 'Tutorialspoint', 'RWXCA'

revoke

revoke命令用于撤销用户访问表的权限。它的语法如下:

hbase> revoke 

下面的代码撤消名为“Tutorialspoint”用户的所有权限。

hbase(main):006:0> revoke 'Tutorialspoint'

user_permission

此命令用于列出特定表的所有权限。 user_permission的语法如下:

hbase>user_permission ‘tablename’

下面的代码列出了“emp”表的所有用户权限。

hbase(main):013:0> user_permission 'emp'




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29754888/viewspace-1583140/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: JVM内存分配
下一篇: Hbase 事务
请登录后发表评论 登录
全部评论

注册时间:2014-07-16

  • 博文量
    180
  • 访问量
    1158157