参考:

cloudera官方授权:包括webui, ldap,sentry

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/sg_sentry_overview.html

启用sentry

https://cloud.tencent.com/developer/article/1077868

hue中授权:

https://blog.csdn.net/lvtula/article/details/89840097

尹导的:

https://www.cnblogs.com/yinzhengjie/articles/10495217.html

建立数据库:

CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Fengfeng99~';
GRANT ALL ON sentry.* TO 'sentry'@'localhost' IDENTIFIED BY 'Fengfeng99~';

FLUSH PRIVILEGES;

进入CM控制台添加服务:

选择sentry服务

sentry server选数据库所在的node,gateway每个节点都选

输入数据库密码

完成

配置HDFS开启ACLs与sentry权限同步:

配置hive使用sentry服务:

关闭hive的用户模拟功能:

集群未启用安全认证环境下,需要配置以下参数:

检查下yarn的allowed.system.users" 有hive

impala配置使用sentry:

HUE配置使用sentry:

用beeline授权管理用户hive:

https://www.cnblogs.com/hongfeng2019/p/11557524.html

create role admin;
grant all on server server1 to role admin; #如果授权给其它角色,那么拥有此角色的用户将拥有所有库权限
grant role admin to group hive;

用admin帐号登陆HUE建三个帐号:

注意,要先创建组: 例如创建dev3

1/ 先创建dev3的组;

再创建用户:

选dev3的组:

点添加用户:

hue授权hive组为管理员,用hive登陆hue,选安全性

在浏览或roles中把server1的权限授给hive

注意: 开启sentry后/user/hive/warehouse里面的库表数据由sentry权限控制,需要赋予权限后用户才能访问, 如sqoop调用任务,启用的是root,所以需要在beeline里给root赋库的权限.

给用户授URI的访问权限:
https://docs.cloudera.com/documentation/enterprise/6/6.2/topics/impala_authorization.html#sentry_cm

授予URI特权
URI表示您指定为语句一部分的文件路径,例如 创建外部表 和 加载数据。通常,您指定看起来像UNIX路径的路径,但是这些位置也可以加上前缀hdfs://明确说明它们确实是URI。要为URI设置特权,请指定目录的名称,该特权适用于该目录中的所有文件以及该目录下的所有目录。

URI必须以 hdfs//, s3a//  file:///
例如:
HDFS: hdfs://host:port/path/to/hdfs/table
S3: s3a://host:port/path/to/s3/table

本地:file:///opt/cloudera/parcels

高可用性(HA),则用cluster名:
hdfs://ha-nn-uri/path/to dir

例1: 数仓要运行自己开发的jar包,但发现没有权限

需求是:

create temporary function isInArea_test as 'com.oride.udf.IsInArea' 
USING JAR 'hdfs://warehourse:8020/tmp/udf-1.0-SNAPSHOT-jar-with-dependencies.jar';

1/ 需要hdfs的权限运行jar包

//创建udf hdfs目录role
create role role_udf_hdfs_path;
GRANT ALL ON URI 'hdfs://warehourse:8020/' TO ROLE role_udf_hdfs_path;

2/ udf需要用到本地ufile的jar包

//创建udf 本地目录role
create role role_udf_local_path;
GRANT ALL ON URI 'file:///opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/auxlib/' TO ROLE role_udf_local_path;

例2 给用户s3的访问权限:
方法一: cdh的hdfs添加象/usr/hive/warehouse的前缀,但不支持s3,ufile
https://blog.csdn.net/wflh323/article/details/88891579
sentry
Sentry 同步路径前缀 添加:
ufile://opay-datalake
s3a://opay-bi
https://www.iteye.com/blog/lookqlp-2191087

方法二: grant uri,赋予权限使用户能访问s3的数据,
ufile不支持这种.所以使用公共帐号,把airflow加到admin role.

beeline
!connect jdbc:hive2://localhost:10000
!connect jdbc:hive2://10.52.17.84:10000
mingze.yang

create role s3;
GRANT ALL ON URI 's3a://opay-bi' TO ROLE s3;
create role s3foropay;
GRANT ALL ON URI 's3a://opay-bi/opay' TO ROLE s3;

create role ufile;
GRANT ALL ON URI 'ufile://opay-datalake' TO ROLE ufile;
create role ufile1;
GRANT ALL ON URI 'ufile://opay-datalake/opay/opay' TO ROLE ufile1;

create role sqoop;
GRANT ALL ON URI 'hdfs://warehourse/user/hive/warehouse' TO ROLE sqoop;
grant role sqoop to group root;

create role sqoop2;
GRANT ALL ON URI 'hdfs://10.52.23.195:8020/user/hivewarehouse' TO ROLE sqoop2;
grant role sqoop1 to group root;

DROP ROLE <role name>;

grant role ufile to group `dong.xie`;
grant role ufile to group `mingze.yang`;
grant role ufile1 to group `mingze.yang`;
grant role s3 to group `mingze.yang`;

SHOW ROLE GRANT GROUP `dong.xie`;
SHOW ROLE GRANT GROUP `mingze.yang`;

create role read;
grant select on table test to role read; grant select on table db_test1.users1 to role read;
create role write;
grant insert on table test to role write; grant insert on table db_test1.users1 to role write;
grant role read to group dev1;
grant role write to group dev2;

开启sentry权限控制hue的更多相关文章

  1. 为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制

    转载请注明出处:http://www.cnblogs.com/xiaodf/ 4. 为CDH 5集群添加Kerberos身份验证 4.1 安装sentry1.点击“操作”,“添加服务”:2.选择sen ...

  2. spring-security 开启注解权限控制为什么没有效果

    如果配置在spring-security中没有权限控制效果,可以配置在springmvc中试试 <security:global-method-security pre-post-annotat ...

  3. mysql开启远程访问及相关权限控制

    开启mysql远程访问: 授予用户user 密码 passwd 所有权限 所有主机IP可访问 授权语句:Grant <权限> on 表名[(列名)] to 用户 With grant op ...

  4. Web应用程序系统的多用户权限控制设计及实现-页面模块【9】

    前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的基本模块-页面模块.页面模块涉及到的数据表为页面表. 1.1页面域 为了更规范和方便后期系统的二次开发和维护 ...

  5. yii2搭建完美后台并实现rbac权限控制案例教程

    作者:白狼 出处:www.manks.top/article/yii2_frame_rbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

  6. yii2搭建完美后台并实现rbac权限控制实例教程

    1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...

  7. Web应用程序系统的多用户权限控制设计及实现-用户模块【7】

    前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的基本模块-用户模块.用户模块涉及到的数据表为用户表. 1.1用户域 为了更规范和方便后期系统的二次开发和维护 ...

  8. Hive权限控制和超级管理员的实现

    Hive权限控制 Hive权限机制: Hive从0.10可以通过元数据控制权限.但是Hive的权限控制并不是完全安全的.基本的授权方案的目的是防止用户不小心做了不合适的事情. 先决条件: 为了使用Hi ...

  9. linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)

    linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...

随机推荐

  1. 【C#-枚举】枚举的使用

    枚举是用户定义的整数类型. namespace ConsoleApplication1 { /// <summary> /// 在枚举中使用一个整数值,来表示一天的阶段 /// 如:Tim ...

  2. 基于nc命令监控服务端口的Shell脚本

    Shell代码: #!/bin/bash export LANG=en_US.UTF- #IP Address=127.0.0.1 #Port Port= #尝试的次数 n= #nc timeout, ...

  3. AtCoder AGC037D Sorting a Grid (二分图匹配)

    题目链接 https://atcoder.jp/contests/agc037/tasks/agc037_d 题解 这场D题终于不像AGC032D和AGC036D一样神仙了-- 还是可做的吧 虽然考场 ...

  4. ubuntu E: Could not get lock /var/lib/apt/lists/lock 异常信息

    转载:https://www.cnblogs.com/qq952693358/p/6537846.html 在更换软件源时遇到了如下问题: sudo apt-get update E: Could n ...

  5. [CSP-S模拟测试]:Cover(单调栈++单调队列+DP)

    题目传送门(内部题126) 输入格式 第一行两个个整数$n,m$表示区间的长度与彩灯的数量. 接下来$m$行,每行三个整数$l_i,r_i,a_i$表示一条彩灯能够覆盖的区间以及它的美观程度. 输出格 ...

  6. java 后台封装json数据学习总结

    一.数据封装 1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( &quo ...

  7. spark MLlib 概念 6:ALS(Alternating Least Squares) or (ALS-WR)

    Large-scale Parallel Collaborative Filtering for the Netflix Prize http://www.hpl.hp.com/personal/Ro ...

  8. 系统句柄报too many files open

    对于一般的应用来说(象Apache.系统进程)1024完全足够使用.但是如何象java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too ...

  9. 一、基础篇--1.1Java基础-equals与==的区别

    ==: ==比较的是变量内存中存放的对象的内存地址,用来判断两个对象地址是否相同,比较的是否是同一个对象. 1.两边的操作数必须是同一类型,不然编译不通过. 2.如果是基本数据类型比较,值相等则为tr ...

  10. HttpURLConnection 和HttpClient 哪个好

    最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是 ...