HBase ACL管理 Hbase 权限管理

场景:hadoop集群已经进行kerberos认证

  • 启动Hbase相关配置

  •  Hbase权限分为以下五种:

Read(R) : 可以读取给定范围内数据的权限

Write(W) : 可以在给定范围内写数据

Executor(X) : 可以在指定表执行Endpoints类型的协处理

Create(C) : 可以在给定范围内创建和删除表(包括非该用户创建的表)

Admin(A) : 可以执行集群操作,如平衡数据等

 

以上5个控制级别都需要为其指定范围,范围定义如下:

Superuser : 超级用户可以执行HBase中所有操作及任何资源(如:hbase用户)

Global: 在全局范围内授予的权限,可以在超级管理下创建多种集群管理员

Namespace: 在命名空间范围内授权,适用于命名空间内所有表

Table: 表范围授权,适用于为指定表进行授权

ColumnFamily: ColumnFamily范围内授权

Cell: 为指定的单元格进行授权

grant

grant <user>, <permissions> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]

  • 对指定用户授权 

使用kerberos 授权的hdfs用户执行创建表,对HDFS文件系统hdfs有最高的权限,但是在hbase shell中创建表也是没有权限(前提是启动kerberos,未启动的集群可以随便搞~)

hbase(main):001:0> create 'test','fn'ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (user=hdfs@JAST.COM, scope=default, params=[namespace=default,table=default:test,family=fn],action=CREATE)

使用kerberos 授权的hbase用户有最高权限,我们使用hbase,授权给hdfs相关权限

kinit -kt hbase.keytab hbase@JAST.COM # 切换hbase 

给hdfs用户授权 Create(C) 、Admin(A) 权限 

hbase(main):004:0> grant 'hdfs','CA'
0 row(s) in 0.2240 secondshbase(main):005:0> user_permission
User                                         Namespace,Table,Family,Qualifier:Permission                                                                                       hdfs                                        hbase,hbase:acl,,: [Permission: actions=CREATE,ADMIN] 

测试创建表 ,成功

hbase(main):005:0> create 'test2','ss'
0 row(s) in 1.2710 seconds

测试查询数据,发现只能查询、添加使用hdfs创建的表,其他表提示无权限(写入也无权限这里不做测试了)

hbase(main):003:0> scan 'test',{LIMIT=>1}
ROW                                          COLUMN+CELL                                                                                                                       ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user 'hdfs' (table=test, action=READ)

也就是说授予CA权限的用户可以对自己新建的表进行读、写、删除等操作,但不能操作非admin用户创建的表。如果admin用户拥有RCA的权限则可以读非admin用户创建的表进行操作(如:读、写、删除操作)

注意:这里给用户设置了A的权限,他同时也可以修改其他用户的相关权限,所以admin谨慎设置,超级用户与hbase用户不受ACL权限控制,即便设置了也不生效

查看权限发现的确与测试结果相同

hbase(main):012:0> user_permission '.*'
User                                         Namespace,Table,Family,Qualifier:Permission                                                                                       hdfs                                        hbase,hbase:acl,,: [Permission: actions=CREATE,ADMIN]                                                                             hbase                                       default,test,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]                                                                hdfs                                        default,test2,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]                                                               
3 row(s) in 0.7510 seconds

 重新授权,可以查看所有表数据~

hbase(main):004:0> grant 'hdfs','CAR'
0 row(s) in 0.0700 secondshbase(main):005:0> user_permission
User                                         Namespace,Table,Family,Qualifier:Permission                                                                                       hdfs                                        hbase,hbase:acl,,: [Permission: actions=CREATE,ADMIN,READ]                                                                        
1 row(s) in 0.0320 seconds#授权后查看数据,成功
hbase(main):005:0> scan 'test',{LIMIT=>1}
ROW                                          COLUMN+CELL                                                                                                                       0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:article_type, timestamp=1562936918988, value=2                                                                          0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:crawler_site_id, timestamp=1562936918988, value=300                                                                     0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:crawler_time, timestamp=1562936918988, value=2019-07-09 20:17:51.473                                                    0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:created_at, timestamp=1562936918988, value=2019-07-09 07:00:00.000                                                      0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:created_date, timestamp=1562936918988, value=20190709                                                                   0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:download_type, timestamp=1562936918988, value=297                                                                       0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:emotion, timestamp=1562936918988, value=\xE4\xB8\xAD\xE6\x80\xA7                                                        0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:grade_all, timestamp=1562936918988, value=2                                                                             0000300_04bedaa8de0a226b3a7f48f12c5504a8    column=fn:media_type, timestamp=1562936918988, value=["002-001","001-002"]                  
  •  赋予某个用户命名空间权限
#给hdfs用户赋予命名空间default读R权限
grant 'hdfs','R','@default'
#hdfs用户移除命名空间default的权限
revoke 'hdfs','@default'
  •  赋予某个用户某个表的权限
#给hdfs 赋予表TEST_TABLE_NAME 读权限
grant 'hdfs','R','TEST_TABLE_NAME'
  •  赋予某个用户某个列的权限
#赋予权限
grant 'hdfs','R','TEST_TABLE_NAME','fn','text'
#查看
hbase(main):019:0> user_permission 'TEST_TABLE_NAME'
User                                        Namespace,Table,Family,Qualifier:Permission                                                                                                                                              hdfs                                       TEST_TABLE_NAME,fn,text: [Permission: actions=READ]       
#删除
revoke 'hdfs','TEST_TABLE_NAME','fn','text'

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySql索引的原理

数据库索引&#xff0c;是数据库管理系统中一个排序的数据结构&#xff0c;以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B树。 在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08…

Hadoop Kerberos 认证下 Sentry 安装 + Sentry 权限设置使用

目录 一、安装Sentry &#xff11;.&#xff2d;ariaDB中创建sentry数据库 2.CDH中添加sentry 服务 3.hive配置 启动Sentry 4.Impala配置 启动Sentry 5.Hue配置 启动Sentry 6.Hdfs配置 启动Sentry 7.重启服务&#xff0c;使配置生效 二、Sentry权限测试 1.创建hive超…

mongodb最详细的安装与配置

今天晚上才装好&#xff0c;我觉得有必要写这篇文章给你们分享一下 我是看点击打开链接这位博主的文章才装好的其中我想引用里面内容从头到尾来给你们 分享一下流程 第一步&#xff1a;下载mongodb https://www.mongodb.com/download-center#community 第二步&#xff1a;m…

vue.js安装与配置

我们在前端学习中&#xff0c;学会了HTML、CSS、JS之后一般会选择学习一些框架&#xff0c;比如Jquery、AngularJs等。这个系列的博文是针对于学习Vue.js的同学展开的。 1.如何简单地使用Vue.js 如同以前我们学过的Jquery一样&#xff0c;我们在程序中使用Vue.js时也可以使用直…

Hbase WALs(HLog) 文件存储,查看

WALs(HLog) 存储 HLog 存储位置是在&#xff0c;hbase配置目录下WALs目录&#xff0c;默认为 /hbase/WALs 与 /hbase/oldWALs /hbase/WALs : 存储未过期的日志/hbase/oldWALs : 存储已过期的日志 这里先查看WALs日志目录&#xff0c;目录格式为&#xff1a;hostname1 为 …

Elasticsearch 6.x 下载安装

下载ES 下载ES安装包上传至服务器&#xff0c;地址为&#xff1a; https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz 上传完成后解压 tar -zxvf elasticsearch-6.1.0.tar.gz 安装JDK 这里使用jdk8&#xff0c;官网下载安装即可&#xf…

抽象工厂模式-与-工厂方法模式区别

首先来看看这两者的定义区别&#xff1a; 工厂模式&#xff1a;定义一个用于创建对象的借口&#xff0c;让子类决定实例化哪一个类 抽象工厂模式&#xff1a;为创建一组相关或相互依赖的对象提供一个接口&#xff0c;而且无需指定他们的具体类 个人觉得这个区别在于产品&#x…

Centos7.x 安装 CDH 6.x

前置条件 ntp服务安装防火墙关闭 执行以下优化代码 systemctl stop firewalld.service echo "* soft nofile 128000" >>/etc/security/limits.conf echo "* hard nofile 128000" >>/etc/security/limits.conf echo "* so…

Windows IEDA 编译Hbase源码报错 - 无法执行shell脚本

windows 下编译 hbase源码&#xff0c;报错 [ERROR] Command execution failed. java.io.IOException: Cannot run program "bash" (in directory "D:\File\ideaWorkspace\hbase-1.4.10-src\hbase-1.4.10\hbase-shaded\hbase-shaded-check-invariants\target\…

最新版 VMware 安装,虚拟机安装, Ubuntu可视化linux系统安装

一、下载 地址&#xff1a;https://www.vmware.com/cn.html 二、安装VM 选择相应配置&#xff0c;一直下一步即可 双击打开VMware&#xff0c;输入密钥&#xff1a;CG392-4PX5J-H816Z-HYZNG-PQRG2 Ubuntu 镜像下载地址&#xff1a; https://www.ubuntu.com/download/desktop/…

Flink 集群搭建安装 CentOS 7.x 版本

基本准备&#xff1a; JDK免密登录&#xff08;不设置后期启动可以手动输入密码&#xff09;Centos 7.x 一、下载Flink 下载地址&#xff1a;http://flink.apache.org/downloads.html 我这里使用&#xff1a;https://www.apache.org/dyn/closer.lua/flink/flink-1.9.0/flin…

web通讯录之登录注册界面

登录页面&#xff1a; 功能说明&#xff1a;登录页面是在页面模糊背景网站中找的素材加以修改成自己想要的登录界面&#xff0c;我们老师让我们在登录时候加验证码&#xff0c;看了大部分人用的是签名登录方式&#xff0c;觉得没有什么特色因此设计了滑动登录&#xff0c;把验证…

使用IntelliJ IDEA导入 Flink 消费kafka报错 Error: A JNI error has occurred, please check your installation an

提示找不到类&#xff0c;pom中已经引用了jar包&#xff0c;使用eclipse也可以执行&#xff0c;就是IntelliJ不行 java.lang.NoClassDefFoundError: org/apache/flink/api/common/serialization/DeserializationSchemaat java.lang.Class.getDeclaredMethods0(Native Method)a…

有限状态机/FSM

有限状态机&#xff08;FSM&#xff09;的设计与实现&#xff08;一&#xff09; 有限状态机&#xff08;FSM&#xff09;是表示有限个状态及在这些状态之间的转移和动作等行为的数学模型&#xff0c;在计算机领域有着广泛的应用。通常FSM包含几个要素&#xff1a;状态的管理、…

web通讯录之通讯录主界面

界面展示&#xff1a; 界面所用的素材网址点击打开链接&#xff0c;在用网上素材时候首先要把代码看懂才能进行修改&#xff0c;因此希望读者好好看看源码&#xff0c;看的时候着重看看字母排序原理、JQuery设计等等。 分组展示&#xff1a;这个地方有个不好的地方&#xff0c…

NameNode 启动失败 - There appears to be a gap in the edit log. We expected txid xxx, but got tx

场景 NameNode迁移&#xff0c;导致一个节点无法启动 异常 在Namenode主动迁移&#xff0c;或者Namenode机器挂掉无法恢复时&#xff0c;我们需要Namenode节点迁移&#xff0c;迁移经常会出现一个NameNode启动成功&#xff0c;另外一个standby启动失败&#xff0c;报错如下 …

opengl光照

看一张图片&#xff1a; 图中绘制了两个大小相同的白色球体。其中右边的一个是没有使用任何光照效果的&#xff0c;它看起来就像是一个二维的圆盘&#xff0c;没有立体的感觉。左边的一个是使用了简单的光照效果的&#xff0c;我们通过光照的层次&#xff0c;很容易的认为它是一…

Nifi 之 kafka消费存入hbase

添加kafka processor&#xff0c;配置如下 kakfa数据格式为JSON&#xff1a; {"events_tag":"103913","query_word":"华大癌变 虎嗅","time":"2018-08-09 13:01:11"} 添加putHbaseJSON&#xff0c;json格式添加数…

web通讯录之搜索功能

手机号搜索&#xff1a; 姓名搜索&#xff1a; 拼音搜索&#xff1a; 城市搜索&#xff1a; 性别搜索&#xff1a; 点击姓名或者电话显示完整信息 相信大家期待自己所写的搜索功能类似于百度、谷歌这种搜索引擎&#xff0c;有兴趣的读者可以去学学SEO&#xff0c;在这里我…

Hbase 删表过程

Hbase 执行删表命令后(drop)&#xff0c;表的数据会移动到 /hbase/archive 目录下&#xff0c;并不会直接从hdfs删除&#xff0c;后台会有进程定期去检查&#xff08;默认五分钟&#xff09;&#xff0c;如果这张表没有快照则会删除&#xff0c;有快照会保留数据。 刚drop时&a…