分享

HBase 权限控制配置及如何实现授权及收回权限

nettman 2015-4-16 16:23:37 发表于 实操演练 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 159473
问题导读

1.HBase的权限管理需要配置哪些配置文件?
2.HBase提供的安全管控级别包括哪些?
3.使用哪个命令可实现在HBase中赋值权限?
4.如何收回权限?







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提供的五个权限标识符:RWXCA,分别对应着READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
HBase提供的安全管控级别包括:
Superuser:拥有所有权限的超级管理员用户。通过hbase.superuser参数配置
Global:全局权限可以作用在集群所有的表上。
Namespace :命名空间级。
Table:表级。
ColumnFamily:列簇级权限。
Cell:单元级。
和关系数据库一样,权限的授予和回收都使用grant和revoke,但格式有所不同。grant语法格式:
grant user permissions table column_family column_qualifier
例如,给用户hive分配对表member有读写的权限, 在启用了hbase.security.authorization之后,默认每个用户只能访问当前的表。而之前创建的member表的属主是HBase,其他用户对其没有访问权限。此时我们通过hive来查找:


  1. # sudo -u hive hbase shell
  2. > scan 'member'
  3. ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (table=member, action=READ)
复制代码


在HBase中赋值权限:
  1. > grant 'hive', 'RW', 'member'
  2. 0 row(s) in 0.4660 seconds
复制代码


然后通过user_permission来查看权限
  1. > user_permission
  2. User    Table,Family,Qualifier:Permission
  3. Hive   member,,: [Permission: actions=READ,WRITE]  
复制代码
再在hive中进行查询,此时hive用户已经可以访问。
  1. > scan 'member'
  2. ROW    COLUMN+CELL
  3. Elvis    column=address:city, timestamp=1425891057211, value=Beijing
  4. ……
复制代码
收回权限revoke的语法格式
  1. revoke user table column family column qualifier
复制代码
收回hive用户在表member上的权限
  1. > revoke 'hive','member'
  2. 0 row(s) in 0.1860 seconds
复制代码



加微信w3aboutyun,可拉入技术爱好者群

已有(4)人评论

跳转到指定楼层
zhaoyang 发表于 2016-8-11 16:11:17
我是作者本人,http://debugo.com/hbase-access-control/,这是我发表的文章,请你删除掉盗版文章,否则我将去投诉你!!!抄来抄去,真不要脸!

cochou 发表于 2015-4-17 14:53:31
回复

使用道具 举报

hery 发表于 2015-4-17 16:07:08
回复

使用道具 举报

js415247240 发表于 2018-1-11 09:45:27
hbase有没有实现类似商用库那种通过用户名和口令的资源隔离方法?
回复

使用道具 举报

spftoto 发表于 2018-9-18 21:15:39
这个方向,好像很深样,权限控制。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条