鉴权,分别由鉴和权组成
因此对于某一个用户来说,通常情况下,需要完成鉴和权才能够满足一个完整的业务场景,因此通常将鉴权放在一起考量。本文探讨hbase的鉴权常用的鉴权方式以及kerberos鉴权方式的相关方法。
HBase的权限管理包括两个部分,分别是Authentication 和 Authorization。
Authentication:针对某host是否有权成为集群的regionserver或者client端,典型的实现是:kerberos
Authorization: 是针对client端对集群数据的读写等权限,能够控制到库、表、列鏃等级别的鉴权控制。
参考 HDFS鉴权设计以及Kerberos鉴权方法 中的kerbero鉴权部分
hbase-site.xml配置
<configuration>
<property>
<name>hbase.security.authenticationname>
<value>kerberosvalue>
property>
<property>
<name>hbase.security.authorizationname>
<value>truevalue>
property>
<property>
<name>hbase.master.kerberos.principalname>
<value>hbase/[email protected]value>
property>
<property>
<name>hbase.regionserver.kerberos.principalname>
<value>hbase/[email protected]value>
property>
<property>
<name>hbase.thrift.kerberos.principalname>
<value>hbase/[email protected]value>
property>
<property>
<name>hbase.master.keytab.filename>
<value>hbase.keytabvalue>
property>
<property>
<name>hbase.regionserver.keytab.filename>
<value>hbase.keytabvalue>
property>
<property>
<name>hbase.thrift.keytab.filename>
<value>/etc/hbase/conf/hbase.keytabvalue>
property>
<property>
<name>hbase.coprocessor.master.classesname>
<value>
org.apache.hadoop.hbase.security.access.AccessControllerorg.apache.hadoop.hbase.security.visibility.VisibilityController
value>
property>
<property>
<name>hbase.coprocessor.region.classesname>
<value>
org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.visibility.VisibilityController,org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint
value>
property>
configuration>
参考mysql的库表鉴权设计模式,能够创建用户、组和鉴权控制表、字段的读写权限。
HBase提供五个权限标识符:(RWXCA)
R - represents read privilege.
W - represents write privilege.
X - represents execute privilege.
C - represents create privilege.
A - represents admin privilege.
相关的管控权限的作用范围,涉及如下级别:
和关系数据库(如mysql)一样,Hbase权限的授予和回收都使用grant和revoke,但格式有所不同。
# 给用户授权emp表的操作权限
hbase(main):012:0> grant 'Administrator','RWCA','emp'
0 row(s) in 0.1740 seconds
# 查看用户的权限
hbase(main):014:0> user_permission 'emp'
User Namespace,Table,Family,Qualifier:Permission
Administrator default,emp,,: [Permission: actions=READ,WRITE,CREATE,ADMIN]
root default,emp,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
2 row(s) in 0.0640 seconds
相关语法
revoke <user> [<table> [<column family> [<column; qualifier>]]
操作示例
hbase(main):014:0> revoke 'Administrator','emp'
0 row(s) in 0.1860 seconds
暂无
暂无