這篇文章主要講解了“如何在Hue中使用Sentry”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何在Hue中使用Sentry”吧!
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這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。