
# 在Ranger中配置HBase的访问权限
在创建完安装了Ranger组件的MRS集群后，HBase的权限控制暂未集成在Ranger，本章节主要介绍HBase组件如何集成在Ranger中。
1. 登录Ranger WebUI界面。
2. 在"Service Manager"中的HBASE处，单击![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264266060.png)添加HBase Service。
   
   图1添加HBase Service   
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0000001389655792.png)
   
   
3. 请参考[表1]填写添加HBase Service的相关参数，未在表中列出的参数请保持默认值。
   
    表1**参数说明** 
   | 名称                                  | 说明                                   | 示例值                                 |
   |:---|:---|:---|
   | Service Name                        | 创建的服务名称，固定填写：hbasedev。               | hbasedev                            |
   | Username                            | 根据实际需要填写。                            | admin                               |
   | Password                            | 根据实际需要填写。                            | -                                   |
   | hadoop.security.authentication      | Hadoop的认证方式，固定填写：Simple。             | Simple                              |
   | hbase.security.authentication       | HBase的认证方式，固定填写：Simple。              | Simple                              |
   | hbase.zookeeper.property.clientPort | HBase集群中ZooKeeper的端口号。               | 2181                                |
   | hbase.zookeeper.quorum              | HBase集群中ZooKeeper地址。                 | 192.168.0.7,192.168.0.8,192.168.0.9 |
   | zookeeper.znode.parent              | HBase存在ZooKeeper中的根节点路径，固定填写：/hbase。 | /hbase                              |
      
   图2Create hbasedev   
   ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264265682.png)
   
   
4. 单击"Add"添加服务。
5. 启动Ranger HBase Plugin，授权Ranger管理HBase。 
   1. 在MRS控制台，单击集群名称进入集群详情页面。
   
   2. 选择"组件管理"。
   
   3. 选择"HBase \> 服务配置"，将"基础配置"切换为"全部配置"。
   
   4. 搜索并修改"hbase.security.authorization"为"true"（选择第一个HBase下的参数即可）。
      图3修改hbase.security.authorization   
      ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264266627.png) 
   
   5. 搜索"hbase.coprocessor.master.classes"，并在原值后追加",org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor"。
      图4hbase.coprocessor.master.classes   
      ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264265966.png) 
   
   6. 搜索"hbase.coprocessor.region.classes"，并在原值后追加",org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor"。
      图5hbase.coprocessor.region.classes   
      ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264266637.png) 
   
   7. 单击"保存配置"，并勾选"重新启动受影响的服务或实例。"重启HMaster与RegionServer实例。
   
   
   
   
6. 在HBase Service hbasedev下创建对应的Policy。 
   1. 登录Ranger WebUI界面。
   
   2. 在HBASE区域单击已添加的服务名称"hbasedev"。
   
   3. 单击"Add New Policy"，新增访问控制策略。
   
   4. 参考[表2]配置参数，未在表中列出的参数请保持默认值。
       表2参数说明 
      | 参数                  | 说明                                                                                                                                                                                                                                                                                                         | 示例值                                                                                                                                                                                                                                                                                             |
      |:---|:---|:---|
      | Policy Name         | 策略名称。                                                                                                                                                                                                                                                                                                      | Policy002                                                                                                                                                                                                                                                                                       |
      | HBase Table         | 该策略允许访问的HBase表名称。                                                                                                                                                                                                                                                                                          | test1                                                                                                                                                                                                                                                                                           |
      | HBase Column-family | 该策略允许访问的HBase表对应的列族。                                                                                                                                                                                                                                                                                       | cf1                                                                                                                                                                                                                                                                                             |
      | HBase Column        | 该策略允许访问的HBase表对应的表的列名。                                                                                                                                                                                                                                                                                     | name                                                                                                                                                                                                                                                                                            |
      | Allow Conditions    | - Select Group：该策略允许访问的用户组。  - Select User：该策略允许访问的用户组中的用户。  - Permissions：该策略允许用户使用的权限。   | - Select Group：testuser  - Select User：testuser  - Permissions：Create和select   |
         
      图6新增hbasedev的访问控制策略   
      ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264265501.png) 
   
   5. 单击"Add"，完成策略添加，依据如上Policy，testuser用户组中的testuser用户拥有对HBase中"default"namespace下的"test1"表中"cf1:name"列有Create和select的权限，而对于其他列则没有任何的访问权限。
   
   
   
   
7. 参见[快速使用HBase进行离线数据分析](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_0368.html)更新并登录HBase客户端，验证Ranger是否已经完成集成HBase。
   
   1. 以客户端安装用户登录客户端安装节点，执行如下命令，进入hbase shell。 **source /opt/client/bigdata_env**
      **hbase shell**
      图7进入hbase shell   
      ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264265866.png) 
   
   2. 添加数据，验证Ranger是否已经集成成功。
      1. 为"test1"表中"cf1:name"列添加数据。 put 'test1','001','cf1:name','tom'
         
      
      2. 为"test1"表中"cf1:age"列添加数据，该列用户无权限会添加数据失败。 put 'test1','001','cf1:age',10
         
      
      
      图8验证Ranger集成HBase   
      ![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0264266298.png) 
   
   
   
   
 
