hbase-visibility(可见性标签)

可见性标签是一串逻辑表达式字符串,用于标定数据的可见性。
启用可见性标签

  • 启用可见性标签
    在hbase-site.xml配置文件中添加如下配置

在这里插入图片描述
重启服务,重启成功后会创建hbase:labels表,该表存着已创建的标签以及用户分配的标签。

  • hbase shell可见性标签操作命令

hbase shell中关于可见性标签的命令如下所示:
Group name: visibility labels
Commands: add_labels, clear_auths, get_auths, list_labels, set_auths, set_visibility
1)add_labels:添加标签。只有超级用户可以进行添加,可以通过hbase-site.xml文件中。hbase.superuser配置项进行添加超级用户,多个用户用逗号分隔。
2)list_labels:查看已创建的标签
3)删除已创建的标签:虽然并没有删除标签的命令,但是可以使用delete 命令删除hbase:labels表中的数据进行手动删除标签。
4)set_auths:为用户设置标签。
5)get_auths:获得指定用户的标签。
6)clear_auths:删除指定用户的标签。
7)set_visibility:为已存在的数据设置标签,并不影响之后添加的数据。

  • 实例演示

本次演示创建两个标签developer、manager,创建两个用户bduser、dev。为bduser用户添加manager标签,为dev用户添加developer标签。分别插入不带标签、带manager标签、带developer标签的数据,分别使用bduser、dev用户查看数据,bduser会查出不带标签和带manager标签的数据,dev会查出不带标签和带developer标签的数据。
1)创建标签
命令:
add_labels [‘developer’,‘manager’]
创建成功会在hbase:labels表中添加如下图红框中所示的两条数据:
在这里插入图片描述
2)为用户分配标签
命令:
set_auths ‘bduser’,[‘manager’]
set_auths ‘dev’,[‘developer’]
设置成功会在hbase:labels表中添加如下图红框中所示的两条数据:
在这里插入图片描述
从上图可得:为用户分配标签会在和被分配标签同一行中创建一列名称为用户名的数据。如下图红框中所示:
在这里插入图片描述
3)插入数据
插入不带标签数据:
命令:
put ‘mytable’,‘row1’,‘mycf:name’,‘JACK’
put ‘mytable’,‘row1’,‘mycf:message’,‘mymessage’

插入带manager标签数据:
命令:
put ‘mytable’,‘row2’,‘mycf:name’,‘TOM’,{VISIBILITY=>‘manager’}
put ‘mytable’,‘row2’,‘mycf:message’,‘manager’,{VISIBILITY=>‘manager’}

插入带developer标签数据:
命令:
put ‘mytable’,‘row3’,‘mycf:name’,‘ROSE’,{VISIBILITY=>‘developer’}
put ‘mytable’,‘row3’,‘mycf:message’,‘developer’,{VISIBILITY=>‘developer’}

4)查询数据
hbase用户(超级用户)查询数据:
命令:scan ‘mytable’
在这里插入图片描述

bduser用户查询数据:
命令:scan ‘mytable’
在这里插入图片描述

dev用户查询数据:
命令:scan ‘mytable’
在这里插入图片描述

### 关于HBase列族属性IS_AUTH的信息 对于HBase中的列族属性`IS_AUTH`,官方文档和其他常见资源并未直接提及此特定名称的配置项。然而,在HBase中确实存在多种用于控制访问权限和数据安全性的机制。 #### 访问控制列表 (ACL) 为了实现细粒度的安全管理,可以利用HBase提供的Access Control Lists (ACLs),这允许管理员设置表级别的读写权限。通过命令行工具或API接口,能够针对不同用户授予或撤销对指定命名空间、表、列族乃至单个单元格的操作权利[^1]。 ```bash grant 'username', 'RWXCA', 'table_name' ``` 这里展示的是如何给定用户分配相应权限的例子;其中R表示Read(读取),W代表Write(写入),XC涉及创建/删除区域,A则指代全局管理权能。 #### 安全标签可见性表达式 除了传统的ACL外,HBase还支持基于标签的安全模型——即所谓的Visibility Labels。这种功能使得敏感信息可以根据预定义好的规则被标记,并仅限于具有适当凭证的人查看。虽然这不是严格意义上的`IS_AUTH`参数,但在保护隐私方面起到了重要作用[^2]。 ```java // 设置带有可见性标签的数据 Put put = new Put(Bytes.toBytes(rowKey)); put.addImmutable( Bytes.toBytes(family), Bytes.toBytes(columnQualifier), System.currentTimeMillis(), Bytes.toBytes(value), "PRIVATE" ); ``` 上述Java代码片段展示了怎样向一条记录附加私密级别标识符的方法之一。 考虑到以上提到的功能已经涵盖了大部分关于认证授权的需求场景,如果确实遇到了名为`IS_AUTH`的具体选项,则可能是某些定制化部署环境下的专有名词或者是第三方扩展模块的一部分。建议查阅具体项目的说明文件获取更确切解释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值