這篇文章主要講解了“如何在Hue中使用Sentry”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何在Hue中使用Sentry”吧!
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、開(kāi)化ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的開(kāi)化網(wǎng)站制作公司
1.文檔編寫(xiě)目的
本文檔講述如何通過(guò)Hue管理Sentry權(quán)限,您將學(xué)習(xí)到以下知識(shí):
1.如何使用Hue創(chuàng)建用戶(hù)
2.如何使用Hue為hive用戶(hù)組授權(quán)超級(jí)權(quán)限
3.如何使用Hue驗(yàn)證授權(quán)
文檔主要分為以下幾步:
1.使用Hue創(chuàng)建測(cè)試用戶(hù)
2.授權(quán)hive組為管理員
3.創(chuàng)建角色并授權(quán)驗(yàn)證
4.備注
這篇文檔將重點(diǎn)介紹如何使用Hue管理Sentry權(quán)限,并基于以下假設(shè):
1.CDH集群運(yùn)行正常
2.集群已啟用Kerberos
3.集群已安裝Sentry服務(wù),已和HDFS/Hive/Impala/Hue服務(wù)集成
以下是本次測(cè)試環(huán)境,但不是本操作手冊(cè)的硬限制:
1.操作系統(tǒng):CentOS 6.5
2.CDH和CM版本為5.12.1
3.采用root用戶(hù)進(jìn)行操作
4.Hue的管理員賬號(hào)為admin
2.在Hue上創(chuàng)建用戶(hù)
通過(guò)Hue管理員分別創(chuàng)建用戶(hù)hive/fayson_d/fayson_a/fayson_c/fayson_h,hive用戶(hù)所屬組為hive組,其它用戶(hù)所屬組也與用戶(hù)名稱(chēng)一樣。
注意:確保以上用戶(hù)在集群所有節(jié)點(diǎn)均存在。
1.使用admin用戶(hù)登錄Hue
2.進(jìn)入用戶(hù)管理,創(chuàng)建hive的組
點(diǎn)擊“Add group”保存新建的組
3.創(chuàng)建hive用戶(hù)(以創(chuàng)建hive用戶(hù)為例)
3.授權(quán)hive組為管理員
1.使用hive用戶(hù)登錄Hue
2.點(diǎn)擊Hue左上角菜單,進(jìn)入Security界面
3.創(chuàng)建管理員角色admin,并授權(quán)給hive組
點(diǎn)擊上圖右邊“Click here to add some”
點(diǎn)擊保存,顯示server1所擁有的角色
點(diǎn)擊刷新按鈕,查看是否有權(quán)限
hive用戶(hù)可以查看到server1下所有的數(shù)據(jù)庫(kù)和表
4.創(chuàng)建角色并授權(quán)驗(yàn)證
4.1庫(kù)級(jí)別授權(quán)
使用hive用戶(hù)創(chuàng)建一個(gè)對(duì)default庫(kù)有只讀(SELECT)權(quán)限的角色dread,并授權(quán)給fayson_d用戶(hù)組,所屬該用戶(hù)組的用戶(hù)對(duì)default庫(kù)下所有表只有SECLET權(quán)限沒(méi)有INSERT權(quán)限。
添加角色并授權(quán)
點(diǎn)擊保存并查看
4.2庫(kù)授權(quán)驗(yàn)證
使用fayson_d用戶(hù)登錄Hue,可以看到default下所有表
Hive驗(yàn)證
對(duì)test表進(jìn)行select、count和insert操作
只讀權(quán)限所以INSERT操作失敗
對(duì)test_hive_delimiter表進(jìn)行select、count和insert操作
Impala驗(yàn)證
對(duì)test表進(jìn)行select、count和insert操作
對(duì)test_hive_delimiter表進(jìn)行select、count和insert操作
File Browser驗(yàn)證
無(wú)權(quán)限訪問(wèn)/warehouse目錄下的fayson庫(kù)的數(shù)據(jù)目錄
test表為內(nèi)部表,數(shù)據(jù)目錄為/user/hive/warehouse/test
可以查看test表的數(shù)據(jù)文件
test_hive_delimiter表為外部表,數(shù)據(jù)目錄為/fayson/test_hive_delimiter
可以查看/fayson/test_hive_delimiter目錄下的數(shù)據(jù)文件
無(wú)權(quán)限編輯數(shù)據(jù)文件
結(jié)論:fayson_d用戶(hù)可以使用Hive/Impala查看所有default庫(kù)下的表,但是沒(méi)有insert權(quán)限,插入表失敗。對(duì)應(yīng)到HDFS目錄,可以查看所有目錄文件夾,并查看文件內(nèi)容,但是無(wú)法修改文件內(nèi)容。說(shuō)明Sentry實(shí)現(xiàn)了HDFS ACL的同步。
4.3表級(jí)別授權(quán)
使用hive用戶(hù)創(chuàng)建一個(gè)對(duì)default庫(kù)下test表有所有(ALL)操作權(quán)限的角色testall,并授權(quán)給fayson_a用戶(hù)組,所屬該用戶(hù)組下的所有用戶(hù)能對(duì)default.test表SELECT、INSERT。
創(chuàng)建角色并授權(quán)
點(diǎn)擊保存并查看
4.4表授權(quán)驗(yàn)證
使用fayson_a登錄Hue,可以看到default庫(kù)下的test表
Hive驗(yàn)證
可以對(duì)test表進(jìn)行select、count和insert操作
Impala驗(yàn)證
可以對(duì)test表進(jìn)行select、count和insert操作
File Browser驗(yàn)證
可以瀏覽/user/hive/warehouse目錄
可以查看/user/hive/warehouse/test目錄下的數(shù)據(jù)文件
可以向/user/hive/warehouse/test目錄下上傳數(shù)據(jù)文件
可以刪除數(shù)據(jù)文件
結(jié)論:fayson_a用戶(hù)可以使用Hive/Impala查看所有default庫(kù)下的表,并能執(zhí)行insert操作。對(duì)應(yīng)到HDFS目錄,可以查看所有目錄文件夾,并查看文件內(nèi)容,同時(shí)還能上傳新的文件。說(shuō)明Sentry實(shí)現(xiàn)了HDFS ACL的同步。
4.5列級(jí)別授權(quán)
使用hive用戶(hù)創(chuàng)建一個(gè)對(duì)test表的s1列有只讀(SELECT)權(quán)限的角色testcolumn,并授權(quán)給fayson_c用戶(hù)。所屬該用戶(hù)組下的所有用戶(hù)對(duì)test表的s1列只有SELECT權(quán)限。
添加角色并授權(quán)
點(diǎn)擊保存并查看
4.6列授權(quán)驗(yàn)證
使用fayson_c登錄Hue,可以看到default庫(kù)下的test表
Hive驗(yàn)證
對(duì)test表進(jìn)行select、count和insert操作
由于只有s1列的SELECT權(quán)限,所以不能查看所有列(*)
只可以查看有權(quán)限的列
只能count那一列
無(wú)法插入新的數(shù)據(jù)
Impala驗(yàn)證
對(duì)test表進(jìn)行select、count和insert操作
由于只有s1列的SELECT權(quán)限,所以不能查看所有列(*)
只可以查看有權(quán)限的列
只能count那一列
無(wú)法插入新的數(shù)據(jù)
File Browser驗(yàn)證
無(wú)權(quán)限訪問(wèn)/user/hive/warehouse/test目錄
結(jié)論:fayson_c用戶(hù)使用Hive/Impala只能查看test表的s1列,無(wú)法對(duì)整表select *,無(wú)法執(zhí)行insert操作。對(duì)應(yīng)到HDFS目錄,不能查看相應(yīng)目錄文件夾/文件,同時(shí)無(wú)法上傳新的文件。說(shuō)明Sentry實(shí)現(xiàn)了HDFS ACL的同步。
4.7HDFS URI授權(quán)
使用hive用戶(hù)創(chuàng)建一個(gè)角色,并授權(quán)給fayson_h用戶(hù)組
授權(quán)hdfsall角色對(duì)fayson庫(kù)有所有權(quán)限
授權(quán)hdfsall角色對(duì)HDFS目錄/fayson_data/test_hive有所有(ALL)權(quán)限
所屬該用戶(hù)組下的所有用戶(hù)均對(duì)fayson庫(kù)有所有操作權(quán)限,對(duì)/fayson_data /test_hive目錄有所有權(quán)限,在fayson庫(kù)下創(chuàng)建外部表只能指向/fayson_data /test_hive目錄
創(chuàng)建角色并授權(quán)
點(diǎn)擊保存,查看創(chuàng)建的角色
4.7HDFS URI授權(quán)驗(yàn)證
授權(quán)驗(yàn)證
使用fayson_h用戶(hù)登錄Hue,可以看到fayson庫(kù)
在fayson庫(kù)下創(chuàng)建外部表,執(zhí)行如下建表語(yǔ)句
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';
表創(chuàng)建成功
刪除test_hive表
向test_hive表插入數(shù)據(jù)
使用hive用戶(hù)將hdfs的授權(quán)權(quán)限刪除,再次測(cè)試
使用fayson_h用戶(hù)在fayson庫(kù)下再次創(chuàng)建表,表創(chuàng)建失敗。
File Browser驗(yàn)證
訪問(wèn)fayson庫(kù)數(shù)據(jù)目錄/user/hive/warehouse/fayson.db
訪問(wèn)外部表數(shù)據(jù)目錄/fayson_data/test_hive
不能向外部表數(shù)據(jù)目錄上傳數(shù)據(jù)文件
無(wú)權(quán)限刪除外部表數(shù)據(jù)目錄下文件
訪問(wèn)內(nèi)部表數(shù)據(jù)目錄/user/hive/warehouse/fayson.db/test
可以向/user/hive/warehouse/fayson.db/test數(shù)據(jù)目錄上傳數(shù)據(jù)
可以刪除/user/hive/warehouse/fayson.db/test目錄下的數(shù)據(jù)文件
測(cè)試總結(jié):
fayson_h用戶(hù)對(duì)fayson庫(kù)有所有權(quán)限,在create table test_hive的時(shí)候,如果不指定location,默認(rèn)的數(shù)據(jù)目錄為/user/hive/warehouse/fayson.db/test_hive。如果創(chuàng)建外部表如create external table test_hivexxx location /fayson_data/test_hive的時(shí)候,若不授權(quán)/fayson_data/test_hive目錄的ALL權(quán)限給fayson_h,fayson_h是不能創(chuàng)建表的。
注:對(duì)于上述測(cè)試不能向外部表插入數(shù)據(jù)。
5.備注
以上操作都是使用Hue界面操作,由于集群開(kāi)啟Kerberos,要使用命令行操作需要為上述用戶(hù)創(chuàng)建Kerberos賬號(hào),否則不能在命令行正常使用。
Sentry的URI授權(quán),主要是用于非hive用戶(hù)創(chuàng)建外部表時(shí)對(duì)HDFS數(shù)據(jù)目錄授權(quán)。Sentry授權(quán)的URI可以指向外部表的數(shù)據(jù)目錄,也可以指向外部表數(shù)據(jù)目錄的父目錄,指向父目錄則父目錄下的所有子目錄都可以為外部表的數(shù)據(jù)目錄。
感謝各位的閱讀,以上就是“如何在Hue中使用Sentry”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何在Hue中使用Sentry這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!