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'