文档首页 > > 用户指南> 集群模式> 使用HBase>

授权其他用户访问IAM认证集群中的HBase

授权其他用户访问IAM认证集群中的HBase

分享
更新时间:2020/01/21 GMT+08:00

用户在创建CloudTable集群时,如果开启了“IAM认证”,那么其他用户未经授权,是没有权限访问该集群中的HBase的。如果其他用户想访问您创建的IAM认证模式的CloudTable集群,您需要先执行grant命令给该用户授权。如果今后您不想再给其他用户访问权限,您可以执行revoke命令回收权限。

HBase权限控制命令简介

grant命令用于给指定用户授予特定的权限。语法如下:

grant <user>, <permissions> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]

revoke命令用于回收指定用户的权限。语法如下:

revoke <user> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]

user_permission用于查询权限。语法如下:

user_permission <table> 

<permissions>包括以下5种权限:

  • R - 可以读取给定范围的数据。
  • W - 可以在给定范围内写入数据。
  • X - 可以在给定范围内有执行权限。
  • C - 可以在给定范围内创建表或删除表(甚至是那些他们没有创建的表)。
  • A - 可以执行集群操作,例如平衡集群或在给定范围内分配Region。

有关HBase权限控制的更多内容,请参见HBase官方文档中的Access Control Labels (ACLs)

语法示例:

--给用户userA授予RWXC权限
grant 'userA', 'RWXC'

--查看指定表的权限
user_permission 'table01'

--回收用户userA的权限
revoke 'userA'

授权其他用户访问IAM认证集群中的HBase

假设用户A想访问您创建的IAM认证模式的集群,您可以参照以下步骤给用户A授权、回收权限。

  1. 使用HBase Shell访问集群,具体步骤请参见一键部署客户端
  2. 在HBase Shell中,执行命令给用户A授权。

    您可以执行以下命令进行授权:

    grant '用户A', 'RWXC'

  3. 用户A使用HBase Shell访问集群,具体步骤请参见一键部署客户端

    当执行以下命令一键部署HBase Shell时,命令中的参数请参考命令下方的参数说明进行替换。

    source quick_start_hbase_shell.sh $zookeeper_address $user_name $access_key $secret_key
    • $zookeeper_address:请输入所要访问的IAM认证集群的“ZK链接地址”。
    • $user_name:为创建集群的用户名。如果集群是由账号创建的,$user_name需设置为账号名,如果集群是由账号下的IAM用户创建的,$user_name需设置为“IAM用户.账号名”。账号与IAM用户可以类比为父子关系。
    • $access_key和$secret_key:请输入用户A自己的AK和SK。

  4. 在一键部署HBase Shell成功后,用户A就可以进入HBase Shell,进行创表、插入数据等操作。

    HBase Shell命令的相关信息,请参见HBase Shell命令简介

    例如,执行以下命令查询HBase中所有的表:

    list

  5. 当您不想再允许用户A访问集群时,可以回收权限。

    您可以在HBase Shell中执行以下命令回收权限:

    revoke '用户A'

注意事项

  • 对于未开启IAM认证的CloudTable集群,其他用户无需得到授权就可以访问此类集群中的HBase。
  • 对于账号下的IAM用户创建的IAM认证模式的CloudTable集群,该IAM用户所属的账号无需得到授权就可以访问集群中的HBase,可以对HBase数据进行读、写、查操作。账号用户使用自己的AK和SK连接IAM用户集群的“ZK链接地址”。
分享:

    相关文档

    相关产品