0033-如何在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組,其它用戶所屬組也與用戶名稱一樣。

注意:確保以上用戶在集羣所有節點均存在。

0033-如何在Hue中使用Sentry

1.使用admin用戶登錄Hue

0033-如何在Hue中使用Sentry

2.進入用戶管理,創建hive的組

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

點擊“Add group”保存新建的組

0033-如何在Hue中使用Sentry

3.創建hive用戶(以創建hive用戶爲例)

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

3.授權hive組爲管理員


1.使用hive用戶登錄Hue

0033-如何在Hue中使用Sentry

2.點擊Hue左上角菜單,進入Security界面

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

3.創建管理員角色admin,並授權給hive組

0033-如何在Hue中使用Sentry

點擊上圖右邊“Click here to add some”

0033-如何在Hue中使用Sentry

點擊保存,顯示server1所擁有的角色

0033-如何在Hue中使用Sentry

點擊刷新按鈕,查看是否有權限

0033-如何在Hue中使用Sentry

hive用戶可以查看到server1下所有的數據庫和表

0033-如何在Hue中使用Sentry

4.創建角色並授權驗證

4.1庫級別授權


使用hive用戶創建一個對default庫有隻讀(SELECT)權限的角色dread,並授權給fayson_d用戶組,所屬該用戶組的用戶對default庫下所有表只有SECLET權限沒有INSERT權限。

0033-如何在Hue中使用Sentry

添加角色並授權

0033-如何在Hue中使用Sentry

點擊保存並查看

0033-如何在Hue中使用Sentry

4.2庫授權驗證


使用fayson_d用戶登錄Hue,可以看到default下所有表

  • Hive驗證

0033-如何在Hue中使用Sentry

對test表進行select、count和insert操作

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

只讀權限所以INSERT操作失敗

0033-如何在Hue中使用Sentry

對test_hive_delimiter表進行select、count和insert操作

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

  • Impala驗證

0033-如何在Hue中使用Sentry

對test表進行select、count和insert操作

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

對test_hive_delimiter表進行select、count和insert操作

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

  • File Browser驗證

無權限訪問/warehouse目錄下的fayson庫的數據目錄

0033-如何在Hue中使用Sentry

test表爲內部表,數據目錄爲/user/hive/warehouse/test

0033-如何在Hue中使用Sentry

可以查看test表的數據文件

0033-如何在Hue中使用Sentry

test_hive_delimiter表爲外部表,數據目錄爲/fayson/test_hive_delimiter

0033-如何在Hue中使用Sentry

可以查看/fayson/test_hive_delimiter目錄下的數據文件

0033-如何在Hue中使用Sentry

無權限編輯數據文件

0033-如何在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。

0033-如何在Hue中使用Sentry

創建角色並授權

0033-如何在Hue中使用Sentry

點擊保存並查看

0033-如何在Hue中使用Sentry

4.4表授權驗證


使用fayson_a登錄Hue,可以看到default庫下的test表

  • Hive驗證

0033-如何在Hue中使用Sentry

可以對test表進行select、count和insert操作

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

  • Impala驗證

0033-如何在Hue中使用Sentry

可以對test表進行select、count和insert操作

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

  • File Browser驗證

可以瀏覽/user/hive/warehouse目錄

0033-如何在Hue中使用Sentry

可以查看/user/hive/warehouse/test目錄下的數據文件

0033-如何在Hue中使用Sentry

可以向/user/hive/warehouse/test目錄下上傳數據文件

0033-如何在Hue中使用Sentry

可以刪除數據文件

0033-如何在Hue中使用Sentry

結論:fayson_a用戶可以使用Hive/Impala查看所有default庫下的表,並能執行insert操作。對應到HDFS目錄,可以查看所有目錄文件夾,並查看文件內容,同時還能上傳新的文件。說明Sentry實現了HDFS ACL的同步。

4.5列級別授權


使用hive用戶創建一個對test表的s1列有隻讀(SELECT)權限的角色testcolumn,並授權給fayson_c用戶。所屬該用戶組下的所有用戶對test表的s1列只有SELECT權限。

0033-如何在Hue中使用Sentry

添加角色並授權

0033-如何在Hue中使用Sentry

點擊保存並查看

0033-如何在Hue中使用Sentry

4.6列授權驗證


使用fayson_c登錄Hue,可以看到default庫下的test表

  • Hive驗證

0033-如何在Hue中使用Sentry

對test表進行select、count和insert操作

0033-如何在Hue中使用Sentry

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

0033-如何在Hue中使用Sentry

只可以查看有權限的列

0033-如何在Hue中使用Sentry

只能count那一列

0033-如何在Hue中使用Sentry

無法插入新的數據

  • Impala驗證

0033-如何在Hue中使用Sentry

對test表進行select、count和insert操作

0033-如何在Hue中使用Sentry

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

0033-如何在Hue中使用Sentry

只可以查看有權限的列

0033-如何在Hue中使用Sentry

只能count那一列

0033-如何在Hue中使用Sentry

無法插入新的數據

  • File Browser驗證

無權限訪問/user/hive/warehouse/test目錄

0033-如何在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目錄

0033-如何在Hue中使用Sentry

創建角色並授權

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

點擊保存,查看創建的角色

0033-如何在Hue中使用Sentry

4.7HDFS URI授權驗證


  • 授權驗證

使用fayson_h用戶登錄Hue,可以看到fayson庫

0033-如何在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';

表創建成功

0033-如何在Hue中使用Sentry

刪除test_hive表

0033-如何在Hue中使用Sentry

向test_hive表插入數據

0033-如何在Hue中使用Sentry

使用hive用戶將hdfs的授權權限刪除,再次測試

0033-如何在Hue中使用Sentry

0033-如何在Hue中使用Sentry

使用fayson_h用戶在fayson庫下再次創建表,表創建失敗。

0033-如何在Hue中使用Sentry

  • File Browser驗證

訪問fayson庫數據目錄/user/hive/warehouse/fayson.db

0033-如何在Hue中使用Sentry

訪問外部表數據目錄/fayson_data/test_hive

0033-如何在Hue中使用Sentry

不能向外部表數據目錄上傳數據文件

0033-如何在Hue中使用Sentry

無權限刪除外部表數據目錄下文件

0033-如何在Hue中使用Sentry

訪問內部表數據目錄/user/hive/warehouse/fayson.db/test

0033-如何在Hue中使用Sentry

可以向/user/hive/warehouse/fayson.db/test數據目錄上傳數據

0033-如何在Hue中使用Sentry

可以刪除/user/hive/warehouse/fayson.db/test目錄下的數據文件

0033-如何在Hue中使用Sentry

0033-如何在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可以指向外部表的數據目錄,也可以指向外部表數據目錄的父目錄,指向父目錄則父目錄下的所有子目錄都可以爲外部表的數據目錄。

醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,數據玩的花!
溫馨提示:要看高清無碼套圖,請使用手機打開並單擊圖片放大查看。

推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。

0033-如何在Hue中使用Sentry
原創文章,歡迎轉載,轉載請註明:轉載自微信公衆號Hadoop實操

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章