
# 创建HBase用户并绑定角色
#### 操作场景
该任务指导MRS集群管理员在Manager创建并设置HBase的角色。HBase角色可设置HBase管理员权限以及HBase表和列族的读（R）、写（W）、创建（C）、执行（X）或管理（A）权限。
用户需要在HBase中对指定的数据库或表设置权限，才能够创建表、查询数据、删除数据、插入数据、更新数据以及授权他人访问HBase表。
#### 约束与限制
- 仅开启了Kerberos认证的集群（安全模式）支持创建HBase角色。
- 如果当前组件使用了Ranger进行权限控制，须基于Ranger配置相关策略进行权限管理，具体操作可参考[添加HBase的Ranger访问权限策略](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1857.html)。
 
#### 前提条件
- MRS集群管理员已明确业务需求。
- 已登录MRS集群Manager管理界面。
 
 #### 创建HBase角色
MRS系统默认预置了部分角色，如果预置的角色不满意用户需求，可以参考该操作自定义创建角色。如果系统预置的角色满足要求则请跳过该操作。系统预置的角色及其权限说明请参见[MRS集群默认权限信息说明](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300031.html)。
1. 登录Manager界面，选择"系统 \> 权限 \> 角色"。
2. 单击"添加角色"，在"角色名称"和"描述"中输入角色名字与描述。
3. 设置角色"配置资源权限"，具体任务场景配置操作请参见[表1]：
   
   - HBase Scope：对HBase表授权，最小支持设置列的读（R）和写（W）权限。
   
   - HBase管理员权限：HBase管理员权限。
   
   
   **用户对自己创建的表具有读（R）、写（W）、创建（C）、执行（X）和管理（A）权限。**
    表1设置HBase角色资源权限 
   | 任务场景            | 角色授权操作                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|
   | 设置HBase管理员权限    | 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase"，勾选"HBase管理员权限"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 设置用户创建表的权限      | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"。  2. 在指定命名空间的"权限"列，勾选"创建"和"执行"权限。例如勾选默认命名空间"default"的"创建"和"执行"权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 设置用户写入数据的权限     | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"。  2. 在指定命名空间的"权限"列，勾选"写"。例如勾选默认命名空间"default"的"写"权限。HBase子对象默认可从父对象继承权限，此时已授予向命名空间中的表写入数据的权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 设置用户读取数据的权限     | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"。  2. 在指定命名空间的"权限"列，勾选"读"。例如勾选默认命名空间"default"的"读"。HBase子对象默认可从父对象继承权限，此时已授予从命名空间中的表读取数据的权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 设置用户管理命名空间或表的权限 | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"。  2. 在指定命名空间的"权限"列，勾选"管理"。例如勾选默认命名空间"default"的"管理"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 设置列的读取或写入权限     | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"，单击指定命名空间显示命名空间的表。  2. 单击指定的表。  3. 单击指定的列族。  4. 确认是否是新建角色？ - 是，在"资源名称"的输入框输入列名称，多个列用英文逗号分隔，勾选"读"或"写"权限。如果HBase表中不存在同名的列，则创建同名的列后角色将拥有该列的权限，列权限设置完成。  - 否，修改已有HBase角色的列权限，表格将显示已单独设置权限的列，执行[5]。    5. 角色新增列权限，在"资源名称"的输入框输入列名称并设置列的权限。角色修改列权限，可以在"资源名称"的输入框输入列名称并设置列权限，也可以在表格中直接修改列的权限。如果在表格中修改了列权限，又同时增加了同名的列权限，则无法保存。角色修改列权限，建议直接修改列的权限，支持搜索功能。   |
      
   
   
4. 单击"确定"完成，返回"角色"页面。 
   角色创建完成后，绑定该角色的用户将拥有对应权限。
   
   
 
#### 创建HBase用户并绑定角色
1. 在Manager页面，选择"系统 \> 权限 \> 用户"。
2. 在用户列表上方，单击"添加用户"，配置如下参数。 
   - 用户名：自定义，例如"hbaseuser"。
   
   - 用户类型：选择"人机"。
   
   - 密码、确认新密码：自定义用户密码。
   
   - 角色：单击"添加"，为用户绑定角色，例如"System_administrator"。 如果系统预置的角色不满足需求，可以参考[创建HBase角色]创建角色后在此处进行绑定。
     
   
   
   
   
3. 单击"确定"完成用户创建。 
   "人机"用户创建成功后，通常需要修改初始密码后才可以正常使用，可以使用该用户登录Manager，按照界面提示重置密码即可。
   
   
4. 使用新创建的用户登录HBase客户端，即可执行创建、修改、删除HBase表等相关操作，具体操作请参见[快速使用HBase进行离线数据分析](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0368.html)。
 
