Hive開啓Sentry須要注意的點

本文要點不在於配置,須要學習怎麼配置請看https://blog.51cto.com/smilemask/2043930sql

1.add jar沒法使用,緣由是由於sentry認爲引用第三方jar包能夠繞過權限來獲取到你想要的數據,那麼真實須要引用如何解決?cdh 提供一個參數hive.reloadable.aux.jars.path,該參數已經替換原來aux jar path,在你上傳到hiveserver2後指定lib目錄下,若是有包名的重複,可使用reload命令從新加載。那麼如何開發須要測試怎麼辦呢?經過建立一個不存在的函數繞過,舉例,我想引用一個json-serde包,在hql裏執行CREATE FUNCTION testfc AS 'test' using jar 'hdfs:///tmp/json-serde_jar_file.jar'; 這句話會報錯,可是會把你的jar包引用到hs2中,而後執行sql語句便可,須要注意grant uri受權json

2.開啓hdfs sentry同步。基本上hive開啓sentry後也會開啓次選項,這樣權限在sql層面和文件系統層面都獲得了安全限制。開啓後,你指定的同步目錄好比/user/hive/warehouse 下的庫或者表會變成hive:hive 771 ,而後用hadoop fs getfacl查看能夠獲得這個庫或者表一些特殊用戶權限,這個權限和hive或者impala上設置的權限就同樣了。當sentry退回後,用戶和組權限會變回原來的設置。值得注意的是,若是是在hdfs新增的數據,那麼仍是開啓hdfs同步後的權限,hive:hive 771,這個須要額外處理,由於用戶都沒法查看這個數據。若是是一些外部表路徑好比/tmp/aaa/database/table ,在你設置額外同步目錄/tmp/aaa時,aaa目錄並不會有771 hive:hive權限,到庫層級纔會變成那樣,緣由是hive裏面有默認配置的數倉目錄安全

相關文章
相關標籤/搜索