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,一经查实,立即删除!

相关文章

node.js ejs的视图模块引擎

一、版本升级 Express从2.0升级到3.0,将ejs的用法忽略&#xff0c;改为用户自定义形式。引入ejs/index.js的模块&#xff0c;来支持ejs的模版引擎二、引入引擎的模块&#xff0c;然后在app中调用engine函数改造ejs引擎 app.engine(ejs, engine);将layout.ejs设置成默认的布局模…

文本文件和二进制文件的区别

广义的二进制文件即指文件&#xff0c;由文件在外部设备的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行字符构成的计算机文件。文本文件存在于计算机系统中&#xff0c;通常在文本文件最后一行放置文件结束标志。文本文件的编码基…

Kerberos Hbase Api 操作

初始化连接加载配置参数&#xff0c;这里只创建连接&#xff0c;具体操作hbase的api没有变化 static { try{ Configuration conf HBaseConfiguration.create();conf.addResource(new Path("config/hbase-site.xml"));//读取配置文件conf.set("hadoop.securi…

ndoe.js实战之开发微博第一讲之工具准备

内容&#xff1a;搭建开发环境和视图制作。一、创建项目 1.express ejs blog 创建项目cd blog 进入项目npm install 加入包的依赖2.加入ejs视图模版引擎支持加入文件 expand_modules/ejs/index.jsvar enginerequire("./expand_modules/ejs");在app中改造引擎app.e…

MySql索引的原理

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

SparkStreaming 异常:java.lang.NoSuchMethodError: scala.Predef scope()Lscala/xml/TopScope

SparkStreaming运行报错 19/05/05 22:35:18 INFO SparkEnv: Registering OutputCommitCoordinator Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$;at org.apache.spark.ui.jobs.AllJobsPage.<init>(…

node.js微博案例第二讲

一、mongodb数据库安装 1.安装包下载&#xff1a;http://www.mongodb.org/downloads2.开始安装解压放入D:\Program Files\目录下。(推荐文件名为mongodb)创建Data、log和Data/db文件夹将mongodb的数据库文件D:\Program Files\mongodb\data\db目录下执行命令&#xff1a…

Spark提交 指定 kerberos 认证信息

spark-submit --principal hdfs/hostnamejast.COM --keytab hdfs-hostname.keytab --jars $(echo lib/*.jar | tr ,) --class com.jast.test.Test test.jar

mongodb数据库常用指令

详细安装看我文章http://blog.csdn.net/dreamzuora/article/details/78877898打开在bin目录下mongo.exe来操作数据库常用命令&#xff1a;show dbs //查看所有库use blog 使用指定的库show collections 查看所有的文档db.表名.find() 查询指定文档的数据db.表名.insert({…

二叉树遍历解析

1 / \ 2 3 / \ / \ 4 5 6 7 当你拿到一棵二叉树&#xff0c;无论它的形状如何的千奇百怪 我们都可以将它按照如下的方式划分根/ \ 左子树 右子树 一棵有很多个节点的二叉树可以划分为以上的形式 也可以这么…

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超…

数据结构与算法的联系

首先,数据结构是一门计算机语言学的基础学科&#xff0c;它不属于任何一门语言&#xff0c;其体现的是几乎所有标准语言的算法的思想。 上面的概念有一些模糊&#xff0c;我们现在来具体说一说&#xff0c;相信你门的数据结构使用的是一门具体的语言比如C/C语言来说明&#xff…

mongodb最详细的安装与配置

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

Impala-shell 启动异常 - Python版本为3.x 启动脚本为2.x

启动 Impala-shell 报错如下 [rootxxx ~]# impala-shellFile "/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/bin/../lib/impala-shell/impala_shell.py", line 222print \tNo options available.^ SyntaxError: Missing parentheses in call to print发现语…

C++面试题(八)

客观题 (1)大端、小端问题&#xff0c;以共用体示例代码给出 假设计算机的CPU是Intel 32位的&#xff0c;以下代码输出结果是什么&#xff1f; [cpp] view plaincopy #include<stdio.h> union ut { short s; char ch[2]; }u; int main() { …

基于 Sentry Hive 权限控制命令详解

Sentry不支持Hive CLI列权限管理&#xff0c;建议禁用Hive CLI。 &#xff08;也不支持SparkSql列权限管理&#xff09; #权限分为 SELECT ,INSERT ,ALL #查看所有role show roles;#创建role create role role_name;#删除role drop role role_name; #将某个数据库读权限授予…

mongodb学习笔记之增删改查作指令

1: mongo入门命令 1.1: show dbs 查看当前的数据库 1.2 use databaseName 选库 1.2 show tables/collections 查看当前库下的collection 1.3 如何创建库? Mongodb的库是隐式创建,你可以use 一个不存在的库 然后在该库下创建collection,即可创建库 1.4 db.createCollectio…

Spark 报错 : Error: bad symbolic reference. A signature in SparkContext.class refers to term conf

报错如下&#xff1a; Error:scalac: Error: bad symbolic reference. A signature in SparkContext.class refers to term conf in package org.apache.hadoop which is not available. It may be completely missing from the current classpath, or the version on the cl…

怎么写出靠谱的简历

著 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。作者&#xff1a;王亞暉链接&#xff1a;http://www.zhihu.com/question/25002833/answer/35426774来源&#xff1a;知乎第一部分&#xff1a;基本信息。必须有的&#xff1a;名字、联系方式…

vue.js安装与配置

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