如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

1.在集群所有节点添加fayson_r用户

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

2.创建Kerberos用户fayson_r

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

3.使用hive用户登录Kerberos

使用beeline连接HiveServer2,创建columnread角色并授权test表s1列的读权限,将columnread角色授权给fayson_r用户组

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

4.fayson_r用户测试

使用fayson_r登录Kerberos,通过beeline连接HiveServer2

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

5.浏览HDFS目录

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

6.使用admin用户登录Hue,创建fayson_r用户

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

使用fayson_r用户登录

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

不能对test表所有列进行查询

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

可以对test表的s1列进行查询

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

不能通过File Brwoser浏览test表的数据目录/user/hive/warehouse/test

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

测试总结:

fayson_r用户所属用户组为fayson_r,该组只拥有对test表s1列的读权限,因此在select和count的时候只能对s1列进行select和count,fayson_r用户无权限浏览/user/hive/warehouse下的所有目录;使用hue只能对test表s1列进行select和count操作,无权限浏览/user/hive/warehouse目录及目录下所有子目录。

注意:Sentry只支持SELECT的列授权,不能用于INSERT和ALL的列授权。

6.备注


在集群启用Sentry服务后,由于Sentry不支持Hive CLI权限管理,所以建议禁用Hive CLI。

  1. 如何限制用户使用Hive CLI操作

进入Hive服务,修改hadoop.proxyuser.hive.group配置,此配置会覆盖HDFS服务中hive代理用户组配置,默认值为空则继承HDFS服务中的hive代理用户配置

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

以上配置表示hue、hive、impala用户组可以使用Hive CLI,配置完成重启Hive及其相关服务。

注:如果配置为空则表示禁止所有用户组,需要注意配置为空会导致Hue不可用,hive用户不能通过beeline和Hive CLI访问Hive。

2.测试配置是否生效

l 使用hive用户登录Kerberos,然后使用Hive CLI操作

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

登录Hive CLI,进行SQL操作

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

  • 使用hue用户登录Kerberos进行测试
 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

通过Hive CLI操作

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

  • 使用impala用户登录Kerberos测试
 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

使用Hive CLI操作

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

  • 使用fayson用户测试,此用户被禁止使用HiveCLI

使用fayson用户登录Kerberos测试

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

使用Hive CLI操作

 

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

测试总结:

通过Hive配置(hadoop.proxyuser.hive.groups)可以限制用户组使用HiveCLI访问Hive,未配置在内的用户组是不可以通过Hive CLI访问(如fayson用户)。在测试中发现impala和hive用户可以通过Hive CLI访问hive表并未受权限控制,而hue用户只能show databases和show tables不能select表。报HDFS访问权限异常,由于hive表的属主均为hive,hive和impala用户都属于hive组,hue用户不属于hive组导致。

0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

注意:hadoop.proxyuser.hive.groups是针对用户组限制,如配置了hive用户组可以通过Hive CLI访问Hive,则属于hive组的所有用户均可以通过Hive CLI访问Hive表且不受Sentry权限控制。

猜你喜欢

转载自blog.csdn.net/lvtula/article/details/89840065
今日推荐