您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
APACHE RANGER 调研----ranger 原理解析
 
作者:wangwenting2016
 
  641  次浏览      50
2020-12-14 
 
编辑推荐:
本文主要介绍了hive 授权流程、ranger 用户创建流程、用户删除、创建策略、删除策略、更新策略等相关内容。


本文来自csdn,由火龙果软件Anna编辑、推荐。

1.hive 授权流程

(1) 管理员设置策略以及用户(例如一个用户对一个hive数据库相关的权限)

(2) 用户通过 jdbc beeline 去请求HiveServe2

(3)hive 权限check, 请求ranger api 获取策略是否已经更新,更新了就利用新的策略,如果没有更新利用本地缓存数据, plugin 会30 秒访问ranger服务 更新策略

(4) hiveserver2 可以通过grant 和 revoke 去请求 ranger 服务 去更新策略

(5) check 和 grant 和 revoke 操作记录 会放到ranger 的audit 审计日志里。

2. ranger 用户创建流程

主要步骤:(1) check 是否有admin 的权限 和 创建的用户数据检验

(2) 初始化XPortalUser 和 XUser 两个数据结构对应数据库 x_portal_user, x_user,

(3) 如果有用户组信息, 将信息加入到 数据库 x_group_users 中

(4) 将操作的日志XXTRxLog 写入数据库 x_trx_log

(5) 通过XPortalUser 用户的角色 更新用户的模块权限 ,数据库对应x_user_module_perm

3. 用户删除

http://172.24.5.149: 6080/service/xusers/secure/users/delete? forceDelete=true

(1) check 权限, 获取x_user 表信息, 获取x_portal_user 表信息

获取x_group_users 信息, 获取x_perm_map 信息 获取x_audit_map 信息

通过x_portal_user 的id 获取x_auth_sess x_user_module_perm x_portal_user_role

通过x_user 的id 获取x_policy信息:(参考security-admin resource 里面的jpa_named_queries.xml

select obj from XXPolicy obj, XXPolicyItem polItem ,XXPolicyItemUserPerm polItemUserPerm where

obj.id = polItem.policyId and polItem.id = polItemUserPerm.policyItemId and polItemUserPerm.userId = :userId

如果强制删除:

a.删除 x_gruop_users 的x_user信息

b.删除x_perm_map 信息

c.删除x_audit_map 信息

如果protalUser 不为空:

a. 删除 x_auth_sess信息, 删除x_user_module_perm 信息

b. 删除x_portal_user_role 信息

遍历此用户的x_policy 信息 获取rangerPolicy 信息,获取policyItem 信息,然后删除此用户相关的, 更新策略。

删除x_user, x_portal_user 信息, 并且统计日志写入x_trx_log 中

4. 创建策略

 

 

(1) 验证policy是否规范, 比如是否为null, 如果是更新操作,id 是否为空, 名称是否重复,此策略对应的服务名不存在等等。

(2) 确定权限是否是admin

(3) 获取RangerService 和 XXServiceDef 信息 看是否为空

(4) 获取resource 和 policyItem 信息。

(5) 通过policyService 创建 policy 写入数据库x_policy 中

(6) 通过创建的XXPolicy 去创建 Resouces 信息

首先获取resouceDef 信息x_resouce_def, 在创建同res_def_id 和 policy_id 去创建policy_resouce 对应数据库x_policy_resouce

通过policy_resouce 和具体的值 向数据库x_policy_resouce_map 信息。

(7)通过创建的XXPolicy 去创建PolicyItem

(8) 更新x_service 里面的version 版本

(9) dataHisService 插入x_data_hist 操作记录信息

(10) 插入x_trx_log 操作记录信息

5.删除策略

(1) 通过policyId 获取RangerPolicy 信息, 通过x_policy 的service 去查询 RangerService 信息

(2) 获取Verrsion 的版本信息, 并且将删除记录 写入x_trx_log 中

(3) 通过policy删除 policyItems信息

通过policy id 获取所有policyItems 信息, 循环policyItems, 通过policyItemId 去删除x_policy_item_condition,

x_policy_item_group_perm,x_policy_item_user_perm,x_policy_item_access 信息

(4) 通过policy删除 policyResource信息

首先通过policyId 获取所有x_policy_resource 的信息,循环遍历resource信息,通过resourceId 去获取x_policy_resoure_map信息

循环resourceMaps 信息 删除resrouceMap 信息。

(5) 通过policy 删除 policy 信息

(6) 更新service 信息, 版本变更

(7) 记录x_data_hist 信息

6.更新策略

(1) 验证操作

(2) 通过policyId 信息获取x_policy 信息, 通过service 获取x_service 信息, 通过x_service的type信息获取x_service_def信息

(3) 查看是否是更新名称,如果是名称,获取验证,这个名称是否已经存在了

(4) 获取更新的后的resouces 和 policyItems 信息, 并在policy 设置新的创建时间和guid和version, 并添加x_trx_log 信息

(5) 更新policy 到数据库x_policy中, 删除之前的resouces 和 policyItems信息

(6)创建新的resource 和policyItems 信息

(7) 更新x_service 的版本, 添加x_data_hist 信息。

 

 
   
641 次浏览       50
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训
最新课程计划
 
最新文章
大数据平台下的数据治理
如何设计实时数据平台(技术篇)
大数据资产管理总体框架概述
Kafka架构和原理
ELK多种架构及优劣
最新课程
大数据平台搭建与高性能计算
大数据平台架构与应用实战
大数据系统运维
大数据分析与管理
Python及数据分析
更多...   
成功案例
某通信设备企业 Python数据分析与挖掘
某银行 人工智能+Python+大数据
北京 Python及数据分析
神龙汽车 大数据技术平台-Hadoop
中国电信 大数据时代与现代企业的数据化运营实践
更多...