hbase做为一种数据库,当然有自己的一套权限系统,不同用户的可以访问不同的空间,表,列族等。
一,修改hbase-site.xml
<property> <name>hbase.security.authorization</name> <value>true</value> </property> <property> <name>hbase.coprocessor.master.classes</name> <value>org.apache.hadoop.hbase.security.access.AccessController</value> </property> <property> <name>hbase.coprocessor.region.classes</name> <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value> </property> <property> <name>hbase.superuser</name> <value>hbase,root,administrator</value> </property>
重启hbase
二,grant授权
1,语法
grant <user>, <permissions> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]
2,例子
//例1 hbase(main):012:0> grant 'tank_1','RWXCA','@test_ns' 0 row(s) in 0.1330 seconds //例2 hbase> grant 'bobsmith', 'RWXCA' hbase> grant '@admins', 'RWXCA' hbase> grant 'bobsmith', 'RWXCA', '@ns1' hbase> grant 'bobsmith', 'RW', 't1', 'f1', 'col1' hbase> grant 'bobsmith', 'RW', 'ns1:t1', 'f1', 'col1'
三,取消授权revoke
1,语法
revoke <user> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]
2,例子
hbase(main):015:0> revoke 'tank_1','@test_ns' 0 row(s) in 0.1740 seconds
四,查看授权
1,查看所有用户权限 hbase>user_permission 2,查看某个表的权限 hbase>user_permission 'user' 3,查看某个namespace的权限 hbase>user_permission '@test_ns'
五,切换用户
1,添加linux用户
useradd tank_1
2,添加用户环境变量
3,测试切换用户
[root@testing ~]# su - tank_1 hbase shell 上一次登录:四 10月 10 16:50:10 CST 2019pts/0 上 /home/bigdata/hbase/bin/hbase:行61: /home/tank_1/hbase-config.sh: 没有那个文件或目录 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/bigdata/hbase/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/bigdata/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] HBase Shell Use "help" to get list of supported commands. Use "exit" to quit this interactive shell. Version 1.4.9, rd625b212e46d01cb17db9ac2e9e927fdb201afa1, Wed Dec 5 11:54:10 PST 2018 hbase(main):001:0> whoami tank_1 (auth:SIMPLE) groups: tank_1 hbase(main):002:0> list TABLE test_ns:t1 test_ns:user 2 row(s) in 0.1460 seconds => ["test_ns:t1", "test_ns:user"] //只显示授权空间下的表 hbase(main):003:0> list_namespace NAMESPACE test_ns //只能看到授权空间 1 row(s) in 0.0260 seconds
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/hadoop/2190.html