这篇文章主要讲解了“如何在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组,其它用户所属组也与用户名称一样。
注意:确保以上用户在集群所有节点均存在。
1.使用admin用户登录Hue
2.进入用户管理,创建hive的组
点击“Add group”保存新建的组
3.创建hive用户(以创建hive用户为例)
3.授权hive组为管理员
1.使用hive用户登录Hue
2.点击Hue左上角菜单,进入Security界面
3.创建管理员角色admin,并授权给hive组
点击上图右边“Click here to add some”
点击保存,显示server1所拥有的角色
点击刷新按钮,查看是否有权限
hive用户可以查看到server1下所有的数据库和表
4.创建角色并授权验证
4.1库级别授权
使用hive用户创建一个对default库有只读(SELECT)权限的角色dread,并授权给fayson_d用户组,所属该用户组的用户对default库下所有表只有SECLET权限没有INSERT权限。
添加角色并授权
点击保存并查看
4.2库授权验证
使用fayson_d用户登录Hue,可以看到default下所有表
Hive验证
对test表进行select、count和insert操作
只读权限所以INSERT操作失败
对test_hive_delimiter表进行select、count和insert操作
Impala验证
对test表进行select、count和insert操作
对test_hive_delimiter表进行select、count和insert操作
File Browser验证
无权限访问/warehouse目录下的fayson库的数据目录
test表为内部表,数据目录为/user/hive/warehouse/test
可以查看test表的数据文件
test_hive_delimiter表为外部表,数据目录为/fayson/test_hive_delimiter
可以查看/fayson/test_hive_delimiter目录下的数据文件
无权限编辑数据文件
结论:fayson_d用户可以使用Hive/Impala查看所有default库下的表,但是没有insert权限,插入表失败。对应到HDFS目录,可以查看所有目录文件夹,并查看文件内容,但是无法修改文件内容。说明Sentry实现了HDFS ACL的同步。
4.3表级别授权
使用hive用户创建一个对default库下test表有所有(ALL)操作权限的角色testall,并授权给fayson_a用户组,所属该用户组下的所有用户能对default.test表SELECT、INSERT。
创建角色并授权
点击保存并查看
4.4表授权验证
使用fayson_a登录Hue,可以看到default库下的test表
Hive验证
可以对test表进行select、count和insert操作
Impala验证
可以对test表进行select、count和insert操作
File Browser验证
可以浏览/user/hive/warehouse目录
可以查看/user/hive/warehouse/test目录下的数据文件
可以向/user/hive/warehouse/test目录下上传数据文件
可以删除数据文件
结论:fayson_a用户可以使用Hive/Impala查看所有default库下的表,并能执行insert操作。对应到HDFS目录,可以查看所有目录文件夹,并查看文件内容,同时还能上传新的文件。说明Sentry实现了HDFS ACL的同步。
4.5列级别授权
使用hive用户创建一个对test表的s1列有只读(SELECT)权限的角色testcolumn,并授权给fayson_c用户。所属该用户组下的所有用户对test表的s1列只有SELECT权限。
添加角色并授权
点击保存并查看
4.6列授权验证
使用fayson_c登录Hue,可以看到default库下的test表
Hive验证
对test表进行select、count和insert操作
由于只有s1列的SELECT权限,所以不能查看所有列(*)
只可以查看有权限的列
只能count那一列
无法插入新的数据
Impala验证
对test表进行select、count和insert操作
由于只有s1列的SELECT权限,所以不能查看所有列(*)
只可以查看有权限的列
只能count那一列
无法插入新的数据
File Browser验证
无权限访问/user/hive/warehouse/test目录
结论: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目录
创建角色并授权
点击保存,查看创建的角色
4.7HDFS URI授权验证
授权验证
使用fayson_h用户登录Hue,可以看到fayson库
在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';
表创建成功
删除test_hive表
向test_hive表插入数据
使用hive用户将hdfs的授权权限删除,再次测试
使用fayson_h用户在fayson库下再次创建表,表创建失败。
File Browser验证
访问fayson库数据目录/user/hive/warehouse/fayson.db
访问外部表数据目录/fayson_data/test_hive
不能向外部表数据目录上传数据文件
无权限删除外部表数据目录下文件
访问内部表数据目录/user/hive/warehouse/fayson.db/test
可以向/user/hive/warehouse/fayson.db/test数据目录上传数据
可以删除/user/hive/warehouse/fayson.db/test目录下的数据文件
测试总结:
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这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!