如何在Hue中使用Sentry

这篇文章主要讲解了“如何在Hue中使用Sentry”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Hue中使用Sentry”吧!

我们提供的服务有:网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、开化ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的开化网站制作公司

1.文档编写目的


本文档讲述如何通过Hue管理Sentry权限,您将学习到以下知识:

1.如何使用Hue创建用户

2.如何使用Hue为hive用户组授权超级权限

3.如何使用Hue验证授权

文档主要分为以下几步:

1.使用Hue创建测试用户

2.授权hive组为管理员

3.创建角色并授权验证

4.备注

这篇文档将重点介绍如何使用Hue管理Sentry权限,并基于以下假设:

1.CDH集群运行正常

2.集群已启用Kerberos

3.集群已安装Sentry服务,已和HDFS/Hive/Impala/Hue服务集成

以下是本次测试环境,但不是本操作手册的硬限制:

1.操作系统:CentOS 6.5

2.CDH和CM版本为5.12.1

3.采用root用户进行操作

4.Hue的管理员账号为admin

2.在Hue上创建用户


通过Hue管理员分别创建用户hive/fayson_d/fayson_a/fayson_c/fayson_h,hive用户所属组为hive组,其它用户所属组也与用户名称一样。

注意:确保以上用户在集群所有节点均存在。

如何在Hue中使用Sentry

1.使用admin用户登录Hue

如何在Hue中使用Sentry

2.进入用户管理,创建hive的组

如何在Hue中使用Sentry

如何在Hue中使用Sentry

点击“Add group”保存新建的组

如何在Hue中使用Sentry

3.创建hive用户(以创建hive用户为例)

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

3.授权hive组为管理员


1.使用hive用户登录Hue

如何在Hue中使用Sentry

2.点击Hue左上角菜单,进入Security界面

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

3.创建管理员角色admin,并授权给hive组

如何在Hue中使用Sentry

点击上图右边“Click here to add some”

如何在Hue中使用Sentry

点击保存,显示server1所拥有的角色

如何在Hue中使用Sentry

点击刷新按钮,查看是否有权限

如何在Hue中使用Sentry

hive用户可以查看到server1下所有的数据库和表

如何在Hue中使用Sentry

4.创建角色并授权验证

4.1库级别授权


使用hive用户创建一个对default库有只读(SELECT)权限的角色dread,并授权给fayson_d用户组,所属该用户组的用户对default库下所有表只有SECLET权限没有INSERT权限。

如何在Hue中使用Sentry

添加角色并授权

如何在Hue中使用Sentry

点击保存并查看

如何在Hue中使用Sentry

4.2库授权验证


使用fayson_d用户登录Hue,可以看到default下所有表

  • Hive验证

如何在Hue中使用Sentry

对test表进行select、count和insert操作

如何在Hue中使用Sentry

如何在Hue中使用Sentry

只读权限所以INSERT操作失败

如何在Hue中使用Sentry

对test_hive_delimiter表进行select、count和insert操作

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

  • Impala验证

如何在Hue中使用Sentry

对test表进行select、count和insert操作

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

对test_hive_delimiter表进行select、count和insert操作

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

  • File Browser验证

无权限访问/warehouse目录下的fayson库的数据目录

如何在Hue中使用Sentry

test表为内部表,数据目录为/user/hive/warehouse/test

如何在Hue中使用Sentry

可以查看test表的数据文件

如何在Hue中使用Sentry

test_hive_delimiter表为外部表,数据目录为/fayson/test_hive_delimiter

如何在Hue中使用Sentry

可以查看/fayson/test_hive_delimiter目录下的数据文件

如何在Hue中使用Sentry

无权限编辑数据文件

如何在Hue中使用Sentry

结论:fayson_d用户可以使用Hive/Impala查看所有default库下的表,但是没有insert权限,插入表失败。对应到HDFS目录,可以查看所有目录文件夹,并查看文件内容,但是无法修改文件内容。说明Sentry实现了HDFS ACL的同步。

4.3表级别授权


使用hive用户创建一个对default库下test表有所有(ALL)操作权限的角色testall,并授权给fayson_a用户组,所属该用户组下的所有用户能对default.test表SELECT、INSERT。

如何在Hue中使用Sentry

创建角色并授权

如何在Hue中使用Sentry

点击保存并查看

如何在Hue中使用Sentry

4.4表授权验证


使用fayson_a登录Hue,可以看到default库下的test表

  • Hive验证

如何在Hue中使用Sentry

可以对test表进行select、count和insert操作

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

  • Impala验证

如何在Hue中使用Sentry

可以对test表进行select、count和insert操作

如何在Hue中使用Sentry

如何在Hue中使用Sentry

如何在Hue中使用Sentry

  • File Browser验证

可以浏览/user/hive/warehouse目录

如何在Hue中使用Sentry

可以查看/user/hive/warehouse/test目录下的数据文件

如何在Hue中使用Sentry

可以向/user/hive/warehouse/test目录下上传数据文件

如何在Hue中使用Sentry

可以删除数据文件

如何在Hue中使用Sentry

结论:fayson_a用户可以使用Hive/Impala查看所有default库下的表,并能执行insert操作。对应到HDFS目录,可以查看所有目录文件夹,并查看文件内容,同时还能上传新的文件。说明Sentry实现了HDFS ACL的同步。

4.5列级别授权


使用hive用户创建一个对test表的s1列有只读(SELECT)权限的角色testcolumn,并授权给fayson_c用户。所属该用户组下的所有用户对test表的s1列只有SELECT权限。

如何在Hue中使用Sentry

添加角色并授权

如何在Hue中使用Sentry

点击保存并查看

如何在Hue中使用Sentry

4.6列授权验证


使用fayson_c登录Hue,可以看到default库下的test表

  • Hive验证

如何在Hue中使用Sentry

对test表进行select、count和insert操作

如何在Hue中使用Sentry

由于只有s1列的SELECT权限,所以不能查看所有列(*)

如何在Hue中使用Sentry

只可以查看有权限的列

如何在Hue中使用Sentry

只能count那一列

如何在Hue中使用Sentry

无法插入新的数据

  • Impala验证

如何在Hue中使用Sentry

对test表进行select、count和insert操作

如何在Hue中使用Sentry

由于只有s1列的SELECT权限,所以不能查看所有列(*)

如何在Hue中使用Sentry

只可以查看有权限的列

如何在Hue中使用Sentry

只能count那一列

如何在Hue中使用Sentry

无法插入新的数据

  • File Browser验证

无权限访问/user/hive/warehouse/test目录

如何在Hue中使用Sentry

结论:fayson_c用户使用Hive/Impala只能查看test表的s1列,无法对整表select *,无法执行insert操作。对应到HDFS目录,不能查看相应目录文件夹/文件,同时无法上传新的文件。说明Sentry实现了HDFS ACL的同步。

4.7HDFS URI授权


使用hive用户创建一个角色,并授权给fayson_h用户组

  • 授权hdfsall角色对fayson库有所有权限

  • 授权hdfsall角色对HDFS目录/fayson_data/test_hive有所有(ALL)权限

所属该用户组下的所有用户均对fayson库有所有操作权限,对/fayson_data /test_hive目录有所有权限,在fayson库下创建外部表只能指向/fayson_data /test_hive目录

如何在Hue中使用Sentry

创建角色并授权

如何在Hue中使用Sentry

如何在Hue中使用Sentry

点击保存,查看创建的角色

如何在Hue中使用Sentry

4.7HDFS URI授权验证


  • 授权验证

使用fayson_h用户登录Hue,可以看到fayson库

如何在Hue中使用Sentry

在fayson库下创建外部表,执行如下建表语句

create external table test_hive
(
  id int,
  name string,
  address string
)
row format delimited fields terminated by ','
stored as textfile location '/fayson_data/test_hive';

表创建成功

如何在Hue中使用Sentry

删除test_hive表

如何在Hue中使用Sentry

向test_hive表插入数据

如何在Hue中使用Sentry

使用hive用户将hdfs的授权权限删除,再次测试

如何在Hue中使用Sentry

如何在Hue中使用Sentry

使用fayson_h用户在fayson库下再次创建表,表创建失败。

如何在Hue中使用Sentry

  • File Browser验证

访问fayson库数据目录/user/hive/warehouse/fayson.db

如何在Hue中使用Sentry

访问外部表数据目录/fayson_data/test_hive

如何在Hue中使用Sentry

不能向外部表数据目录上传数据文件

如何在Hue中使用Sentry

无权限删除外部表数据目录下文件

如何在Hue中使用Sentry

访问内部表数据目录/user/hive/warehouse/fayson.db/test

如何在Hue中使用Sentry

可以向/user/hive/warehouse/fayson.db/test数据目录上传数据

如何在Hue中使用Sentry

可以删除/user/hive/warehouse/fayson.db/test目录下的数据文件

如何在Hue中使用Sentry

如何在Hue中使用Sentry

测试总结:

fayson_h用户对fayson库有所有权限,在create table test_hive的时候,如果不指定location,默认的数据目录为/user/hive/warehouse/fayson.db/test_hive。如果创建外部表如create external table test_hivexxx location /fayson_data/test_hive的时候,若不授权/fayson_data/test_hive目录的ALL权限给fayson_h,fayson_h是不能创建表的。

注:对于上述测试不能向外部表插入数据。

5.备注


  • 以上操作都是使用Hue界面操作,由于集群开启Kerberos,要使用命令行操作需要为上述用户创建Kerberos账号,否则不能在命令行正常使用。

  • Sentry的URI授权,主要是用于非hive用户创建外部表时对HDFS数据目录授权。Sentry授权的URI可以指向外部表的数据目录,也可以指向外部表数据目录的父目录,指向父目录则父目录下的所有子目录都可以为外部表的数据目录。

感谢各位的阅读,以上就是“如何在Hue中使用Sentry”的内容了,经过本文的学习后,相信大家对如何在Hue中使用Sentry这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


当前名称:如何在Hue中使用Sentry
URL标题:http://pwwzsj.com/article/ihhjio.html