HBase在不开启授权的情况下,任何账号对HBase集群可以进行任何操作,例如disable table、drop table、major compact等。
背景信息
进入配置页面
- 登录阿里云E-MapReduce控制台。
- 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组。
- 单击上方的集群管理页签。
- 在集群管理页面,单击相应集群所在行的详情。
- 在左侧导航栏单击 。
- 单击配置页签。
添加配置
重启HBase集群
授权(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 对某个用户组授权。
- 某个范围(Scope)的资源
- 授权命令
- 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权限。
- user和group的授权方式一样,但group需要加一个前缀@
- revoke回收
revoke 'trafodion' #回收trafodion用户的所有权限。
- user_permission查看权限
user_permission 'TABLE_A' #查看TABLE_A表的所有权限。
- grant授权