专栏首页热爱ITHBase授权 转

HBase授权 转

HBase在不开启授权的情况下,任何账号对HBase集群可以进行任何操作,比如disable table/drop table/major compact等等。

说明

对于没有Kerberos认证的集群,即使开启了HBase授权,用户也可以伪造身份访问集群服务。所以建议创建高安全模式(即支持Kerberos)的集群,详见Kerberos安全文档

添加配置

在HBase集群的集群与服务管理页面选择HBase > 配置 > hbase-site > 自定义配置

添加如下几个参数:

试用

<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.coprocessor.regionserver.classes</name>
  <value>org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.token.TokenProvider</value>
</property>

重启HBase集群

在HBase集群的集群与服务管理页面选择HBase > 操作 > RESTART All Components

授权(ACL)

  • 基本概念 授权就是将对 [某个范围的资源] 的 [操作权限] 授予[某个实体] 在HBase中,上述对应的三个概念分别为:
    • 某个范围(Scope)的资源
      • Superuser 超级账号可以进行任何操作,运行HBase服务的账号默认是Superuser。也可以通过在hbase-site.xml中配置hbase.superuser的值可以添加超级账号
      • Global Global Scope拥有集群所有table的Admin权限
      • Namespace 在Namespace Scope进行相关权限控制
      • Table 在Table Scope进行相关权限控制
      • ColumnFamily 在ColumnFamily Scope进行相关权限控制
      • Cell 在Cell Scope进行相关权限控制
    • 操作权限
      • Read (R) 读取某个Scope资源的数据
      • Write (W) 写数据到某个Scope的资源
      • Execute (X) 在某个Scope执行协处理器
      • Create (C) 在某个Scope创建/删除表等操作
      • Admin (A) 在某个Scope进行集群相关操作,如balance/assign等
    • 某个实体
      • User 对某个用户授权
      • Group 对某个用户组授权
  • 授权命令
    • grant 授权 试用 grant <user> <permissions> [<@namespace> [<table> [<column family> [<column qualifier>]]] 说明
      • user/group的授权方式一样,group需要加一个前缀@ 试用 grant 'test','R','tbl1' #给用户test授予表tbl1的读权限 grant '@testgrp','R','tbl1' #给用户组testgrp授予表tbl1的读权限
      • namespace需要加一个前缀@ 试用 grant 'test 'C','@ns_1' #给用户test授予namespace ns_1的CREATE权限
    • revoke 回收
    • user_permissions 查看权限

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HBase实战(1):使用Python连接Hbase数据库【未测试】

    下载地址:http://hbase.apache.org/downloads.html

    双面人
  • /var/spool/postfix/maildrop/ 中有大量的文件

    今天查看硬盘剩余的容量,发现‘/’目录下占用了大量的空间;可我在这个目录下面没有放什么东西;仔细查看在/var/spool/postfix/maildrop/ ...

    双面人
  • 深入浅出webpack学习1--使用DevServer

    webpack的原生支持上述2、3点内容,再结合官方提供的开放工具DevServer也可以很方便的做到第一点。DevServer会启动一个HTTP服务器用于服务...

    双面人
  • 浅析Hbase

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    week
  • kube-on-kube-operator 开发(一)

    kubernetes 已经成为容器时代的分布式操作系统内核,目前也是所有公有云提供商的标配,在国内,阿里云、腾讯云、华为云这样的公有云大厂商都支持一键部署 ku...

    田飞雨
  • kube-on-kube-operator 开发(一)

    kubernetes 已经成为容器时代的分布式操作系统内核,目前也是所有公有云提供商的标配,在国内,阿里云、腾讯云、华为云这样的公有云大厂商都支持一键部署 ku...

    田飞雨
  • 大数据技术学习:Hbase应该怎么学?

    大数据中HBase是一个分布式的、面向列的开源数据库,Hbase的名字的来源是Hadoop database,即hadoop数据库, HBase中的所有数据文件...

    加米谷大数据
  • C#6.0 新增功能

    C# 6.0 版本包含许多可提高开发人员工作效率的功能。 这些功能的总体效果是让你编写的代码更简洁、更具可读性。 该语法不像许多常见做法那样繁琐。 可以更轻松地...

    张传宁老师
  • python常见问题

    __new__是一个静态方法,__init__是一个实例方法 __new__返回一个创建的实例,__init__什么都不返回 ...

    步履不停凡
  • AndroidStudio中集成使用Kotlin(一)AndroidStudio中集成使用Kotlin(一)

    Xiaolei123

扫码关注云+社区

领取腾讯云代金券