1.文檔編寫目的數據庫
本文檔講述如何經過Hue管理Sentry權限,您將學習到如下知識:oop
1.如何使用Hue建立用戶學習
2.如何使用Hue爲hive用戶組受權超級權限測試
3.如何使用Hue驗證受權ui
文檔主要分爲如下幾步:操作系統
1.使用Hue建立測試用戶命令行
2.受權hive組爲管理員3d
3.建立角色並受權驗證code
4.備註orm
這篇文檔將重點介紹如何使用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下全部表
對test表進行select、count和insert操做
只讀權限因此INSERT操做失敗
對test_hive_delimiter表進行select、count和insert操做
對test表進行select、count和insert操做
對test_hive_delimiter表進行select、count和insert操做
無權限訪問/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表
能夠對test表進行select、count和insert操做
能夠對test表進行select、count和insert操做
能夠瀏覽/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表
對test表進行select、count和insert操做
因爲只有s1列的SELECT權限,因此不能查看全部列(*)
只能夠查看有權限的列
只能count那一列
沒法插入新的數據
對test表進行select、count和insert操做
因爲只有s1列的SELECT權限,因此不能查看全部列(*)
只能夠查看有權限的列
只能count那一列
沒法插入新的數據
無權限訪問/user/hive/warehouse/test目錄
結論:fayson_c用戶使用Hive/Impala只能查看test表的s1列,沒法對整表select *,沒法執行insert操做。對應到HDFS目錄,不能查看相應目錄文件夾/文件,同時沒法上傳新的文件。說明Sentry實現了HDFS ACL的同步。
4.7HDFS URI受權
使用hive用戶建立一個角色,並受權給fayson_h用戶組
所屬該用戶組下的全部用戶均對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庫下再次建立表,表建立失敗。
訪問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.備註
醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不願放,數據玩的花! 舒適提示:要看高清無碼套圖,請使用手機打開並單擊圖片放大查看。
推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。