hbase 级别的权限控制

这个问题出自在作Phoenix的时候,报了以下错误,问了同事,提到了这个hbase.security.authorization=true,随后对这个参数进行了解的时候,查到了下面的文章。
clipboard.pngshell

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

<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,分别对应着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来查找:apache

sudo -u hive hbase shell
> scan 'member'
ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (table=member, action=READ)

在HBase中赋值权限:安全

> grant 'hive', 'RW', 'member'
0 row(s) in 0.4660 seconds

而后经过user_permission来查看权限oop

> user_permission
User    Table,Family,Qualifier:Permission 
Hive   member,,: [Permission: actions=READ,WRITE]

再在hive中进行查询,此时hive用户已经能够访问。spa

> scan 'member'
ROW    COLUMN+CELL
Elvis    column=address:city, timestamp=1425891057211, value=Beijing
……

收回权限revoke的语法格式code

revoke user table column family column qualifier

收回hive用户在表member上的权限blog

> revoke 'hive','member'
0 row(s) in 0.1860 seconds

参考文章:
http://blackproof.iteye.com/b...ip

相关文章
相关标签/搜索