Role设置
Role的介绍
Role是一组权限点(permissions,注意,role配置本身是不包括permission的,需结合policy配置);
一个role包含一组用户、用户组或其他role。
Role的典型场景
- 创建一个FinReadOnly的role,选择一组用户或用户组,然后创建一个policy,对finance库的所有表有read权限,role选择FinReadOnly;
- 创建一个FinWriteOnly的role,对finance库的所有表有write权限;
- 创建一个FinReadWrite的role,对finance库的所有表有read+write权限,此时,此role实际上包含2个role:FinReadOnly和FinWriteOnly
- 当某个用户组FinReporting需要读取finance库的所有表时,可修改FinReadOnly的配置,将FinReporting用户组加进来;
- 写入、读写权限类似,仅需修改这个role 的配置即可。
Role能解决什么问题?
假设上面的典型场景,如果没有Role的概念,要如何解决?
1、配置一个policy_r,分配finance的只读权限, 选择用户组fin_r
2、配置一个policy_w,分配finance的写权限,选择用户组fin_w
3、配置一个policy_rw,分配finance的读、写权限,选择用户组fin_rw
4、当某个用户组FinReporting需要读取finance库的所有表时,编辑policy_r,增加用户组FinReporting,此时其用户组为fin_r、FinReporting
Role的作用
在策略很多的时候,会造成拉取变慢,影响 SQL 执行引擎的整体性能;客户端比较多的情况下,客户端插件同时拉取的时候,对 Ranger Admin 的压力也会很大,机器带宽也会成为瓶颈。通过Role的管理可降低policy的编辑频率,当用户范围变更时,无需编辑policy,只需调整role的范围就可以达到目的。
Role的使用
通过数据安全-设置模块进行Role管理,通过Role去管理用户、用户组,将用户、用户组、其他Role添加至Role中,配置好后可以将其添加至对应的策略中,支持对Role的新增、编辑、删除、查看详情、查询操作。