CM记录-Hbase启用安全认证控制

时间:2022-12-18 14:50:44

1.cm-cluster2-HBase-2-HBase 安全授权(hbase.security.authorization)-simple改为true

2.添加配置

1)超级用户-加入root、hbase

2)点击左侧的master在 hbase.coprocessor.master.classes里追加如下内容:

org.apache.hadoop.hbase.security.access.AccessController

3)点击左侧的regionserver在hbase.coprocessor.region.classes里追加如下内容
org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController

3.重启hbase集群(先重启master,边重启region边grant)

4.授权CRWXA(创建、读取、写入、执行、管理)

---授权webuser用户拥有名字空间的读写权限grant 'webuser','RW','@default'

---授权webuser用户拥有表的读写权限
grant 'webuser','RW','contactlist_event_data'
grant 'webuser','RW','contactlist_event_data_bak'
grant 'webuser','RW','crs_data_report'
grant 'webuser','RW','crs_history_report'
grant 'webuser','RW','event_data'
grant 'webuser','RW','user_variables'

5.测试验证

---查看名字空间下的用户权限
#user_permission '@default'
---查看表下的用户权限
#user_permission 'contactlist_event_data'
#user_permission 'contactlist_event_data_bak'
#user_permission 'crs_data_report'
#user_permission 'crs_history_report'
#user_permission 'event_data'
#user_permission 'user_variables'

#scan 'event_data',{LIMIT=>1}
##create 'test', {NAME => 'f1', VERSIONS =>1}
##put 'test','r1','f1','shenzhen'
##get 'test','r1','f1'

6.scan 'hbase:acl' ---权限表

注意:没有启用之前,acl表不存在,启用之后,授权信息可查询。

7.revoke回收权限

#回收权限
revoke <user> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]
# 与分配权限类似,语法:revoke <user> <table> <column family> <column qualifier>
# 例如,收回test用户在表t1上的权限
hbase(main)> revoke 'test','t1'

hbase> revoke 'bobsmith'
hbase> revoke '@admins'
hbase> revoke 'bobsmith', '@ns1'
hbase> revoke 'bobsmith', 't1', 'f1', 'col1'
hbase> revoke 'bobsmith', 'ns1:t1', 'f1', 'col1'