hbase 用户授权 切换用户

张映 发表于 2019-10-10

分类目录: hadoop/spark/scala

标签:, ,

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