• Hbase权限访问命令、报错:Grant无权限(acl文件少了)


    一、权限访问类型

    1、HBase支持做权限访问控制,HBase的权限访问包括以下5种权限
    1. Read( R ) 允许对某个scope有读取权限
    2. Write( W ) 允许对某个scope有写入权限
    3. Execute( X ) 允许对某个scope有执行权限
    4. Create( C ) 允许对某个scope有建表、删表权限
    5. Admin( A ) 允许对某个scope做管理操作,如balance、split、snapshot等
    2、Scope包含以下几种
    1. superuser 超级用户,一般为hbase用户,有所有的权限
    2. global 全局权限,针对所有的HBase表都有权限
    3. namespace namespace下面的所有表权限都有权限
    4. table 表级别权限
    5. columnFamily 列族级别权限
    6. cell 单元格级别权限
    3、命名空间namespace
    1)namespace指的是一个表的逻辑分组,同一组中的表有类似的用途。

    命名空间的概念为即将到来的多租户特性打下基础:

    1. 配额管理(Quota Management
      (HBASE-8410)):限制一个namespace可以使用的资源,资源包括region和table等;
    2. 命名空间安全管理(Namespace Security Administration
      (HBASE-9206)):提供了另一个层面的多租户安全管理;
    3. Region服务器组(Region server groups
      (HBASE-6721)):一个命名空间或一张表,可以被固定到一组regionservers上,从而保证了数据隔离性。
    2)有两个系统内置的预定义命名空间:
    1. hbase:系统命名空间,用于包含hbase的内部表。
    2. default:所有未指定命名空间的表都自动进入该命名空间。

    二、HBase的访问控制相关命令

    HBase的访问控制相关命令主要包括grant/revoke/user_permission,其中grant表示授权,revoke表示回收权限,user_permission用于查询权限。

    1、语法
    hbase> grant <user> <permissions> [ @<namespace> [ <table>[ <column family>[ <column qualifier> ] ] ] ]
    
    • 1
    hbase> revoke <user> <permissions> [ @<namespace> [ <table> [ <column family> [ <column qualifier> ] ] 
    
    • 1
    hbase> user_permission <table> 
    
    • 1
    2、实操
    #1 给root用户授权全局的CA
    grant 'root','RWXCA'
    
    #2 回收root用户全局的CA
    revoke 'root','RWXCA'
    
    #3 给root用户namespace权限
    grant 'root','RWXCA','@TRAF_1500000'
    
    #4 给root用户table权限
    grant 'root','RWXCA','agatha'
    
    #5 查看所有用户权限
    user_permission
    
    #6 查看某个表的权限
    user_permission 'agatha'
    
    #7 查看某个namespace的权限
    user_permission '@TRAF_1500000'
    
    #8 创建namespace
    create_namespace 'ns1'
    
    #9 列出所有namespace
    list_namespace
    
    #10 查看namespace
    describe_namespace 'ns1'
    
    #11 删除namespace
    drop_namespace 'ns1'
    
    #12 在namespace下创建表
    create 'ns1:testtable', 'cf1','cf2'
    
    #13 查看namespace下的表
    list_namespace_tables 'ns1'
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    三、报错:Grant无权限(acl文件少了)

    1、给权限的时候显示Security features are not available

    在这里插入图片描述

    2、查看master少了个acl表

    在这里插入图片描述
    在这里插入图片描述

    3、在hbase-site.xml里添加以下配置开启授权acl
    <property>
       <name>hbase.superuser</name>
       <value>niit01</value>
    </property>
    <property>
      <name>hbase.coprocessor.region.classes</name>    
      <value>org.apache.hadoop.hbase.security.access.AccessController</value>
    </property>
    <property>
      <name>hbase.coprocessor.master.classes</name>
      <value>org.apache.hadoop.hbase.security.access.AccessController</value>
    </property>
    <property>
      <name>hbase.rpc.engine</name>
      <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
    </property>
    <property>
       <name>hbase.security.authorization</name>
       <value>true</value>
    </property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    4、重启hbase再查就有acl了,然后grant等授权命令也可以了

    在这里插入图片描述

  • 相关阅读:
    为指定 java 类生成 PlantUML puml文件工具( v2 )
    解决远程视频会议卡顿问题,优化企业网络办公体验
    使去中心化媒体网络相关联的NFT元数据标准
    C陷阱与缺陷 第2章 语法“陷阱” 2.6 “悬挂”else引发的问题
    LED:视展VSD控制卡网口闪烁不能访问
    抖音矩阵系统定制开发。抖音矩阵系统定制开发。抖音矩阵系统定制开发。
    Cosmopolitan:一次构建,多平台原生运行的C语言库行!
    67-94-hive-函数-开窗函数-常用函数-udf自定义函数
    阿里云服务器价格表,轻量和服务器最新活动价格表汇总
    测试用例的优化与整理:确保软件质量的关键步骤
  • 原文地址:https://blog.csdn.net/agatha_aggie/article/details/126947098