元数据权限授权管理框架:Apache Sentry 集成HIVE测试使用(二)

本文已使用CDH集成了sentry未使用kerberos

cdh版本的hadoop在对数据安全上的处理通常采用Kerberos+Sentry的结构。
kerberos主要负责平台用户的权限管理,
sentry则负责数据的权限管理。

Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,它提供了细粒度级、基于角色的授权以及多租户的管理模式。类似的安全管理框架还有Hortonworks公司开源的Apache Ranger。
通过引进Sentry,Hadoop目前可在以下方面满足企业和政府用户的RBAC需求:
安全授权:Sentry可以控制数据访问,并对已通过验证的用户提供数据访问特权。
细粒度访问控制:Sentry支持细粒度的Hadoop数据和元数据访问控制。在Hive和Impala中Sentry的发行版本中,Sentry在服务器、数据库、表和视图范围提供了不同特权级别的访问控制,包括查找、插入等,允许管理员使用视图限制对行或列的访问。管理员也可以通过Sentry和带选择语句的视图或UDF,根据需要在文件内屏蔽数据。
基于角色的管理:Sentry通过基于角色的授权简化了管理,你可以轻易将访问同一数据集的不同特权级别授予多个组。
多租户管理:Sentry允许为委派给不同管理员的不同数据集设置权限。在Hive/Impala的情况下,Sentry可以在数据库/schema级别进行权限管理。
统一平台:Sentry为确保数据安全,提供了一个统一平台,使用现有的Hadoop Kerberos实现安全认证。同时,通过Hive或Impala访问数据时可以使用同样的Sentry协议。

在这里插入图片描述

sentry主要有三个角色
①Role角色:权限的集合。
②Group用户组:角色是赋予给用户组的。这个用户组在Linux系统里要存在。
③User用户:用户归属于用户组。这个用户在Linux系统里要存在
sentry权限分配模式
权限赋予角色,角色分给用户组,之后该用户组下所有用户都将拥有该权限
在这里插入图片描述

第一步:
在liunx系统上创建两个用户 user1,user2分别在user1 user2组内

组:
在这里插入图片描述
用户:
在这里插入图片描述
使用beelince连接hive
用管理员用户创建 db1 db2两个数据库
create database db1;
create table db1.t1(id string);创建表
insert into db1.t1 values (‘t1_001’),(‘t1_002’);添加数据
create database db2;
create table db2.t2(id string);创建表
insert into db2.t2 values (‘t2_001’),(‘t2_002’);添加数据

创建两个角色
创建角色role1
CREATE ROLE role1;
授予其对db1的管理权限
grant all on database db1 to role role1 with grant option;
创建角色role2
CREATE ROLE role2;
授予其对db2的管理权限
grant all on database db2 to role role2 with grant option;
// show grant role role1; (查看role1角色的权限列表)
// show grant role role2; (查看role2角色的权限列表)

给用户组添加角色
GRANT ROLE role1 TO GROUP user1;
GRANT ROLE role2 TO GROUP user2;
// show role grant group user1 (查看user1的角色列表)
// show role grant group user2(查看user2的角色列表)

使用user1,user2登陆,
//user1登陆,只能看到db1数据库
show databases;
// user2用户登陆,只能看到db2数据库
show databases;

查看当前登陆用户
select current_user();

直接使用hue内部集成的sentry

在hue页面点击
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里可以看到创建的权限,角色,用户组

猜你喜欢

转载自blog.csdn.net/m0_43393325/article/details/107358753