在CM管理界面上要開啓一些選項,這裏不作詳細說明,網上一查都有,推薦文章http://www.jianshu.com/p/055c40dcb8c5 html
但僅限於看配置的內容,至於下面的,做者沒有詳細解釋sql
sentry的權限設置是在hive sql中完成的,須要用Beeline登陸,如beeline -u jdbc:hive2://hiveIP:10000 -n user -p passwd數據庫
用戶名密碼屬於hive所在的OS服務器,也就是說你要在hiveserver2上創建一個用戶而且設置密碼才能夠登陸,進去後默認這幾個用戶組有admin權限,即進行grant role,show role等c#
建議服務器上創建一個admin組,而後增長一個用戶加入這個組,由於上面幾個組可能已經在服務器上存在,且大部分是/bin/false狀態,自建用戶和組最好
緩存
在hive sql裏建立的role須要加入group,這個group就是os服務器的group。到這裏已經能夠針對hive進行權限的設置,但有點麻煩,由於若是有多臺hiveserver2session
那不是天天機器都要建立一遍用戶名和組嗎,這個時候就要用ldap進行用戶登陸,openldap安裝方法不少,這裏不作詳細說明。可是用了ldap後,鑑權的用戶和組仍是在os服務器上app
這裏就須要用到sssd和nslcd,作ldap的mapping,原理就是把ldap上的用戶緩存到本地,這樣不用給ldap過多請求壓力,使用命令getent passwd | getent groupide
能夠看出1000開始的uid是ldap上的,本地不用創建,可是本地也有了這個用戶,固然這些用戶是沒法登陸的,能夠放心post
ldap mapping的配置方法參考http://maxshu.lofter.com/post/6c7b3_93f73,做者寫的很詳細,按照他來不會錯
ldap這邊我用了雙機互爲熱備模式,貼出部分配置,slapd.conf
###sync###
index entryCSN,entryUUID eq
overlay syncprov
syncprov-checkpoint 1 1 有一天同步一條記錄
syncprov-sessionlog 100
serverID 001 兩臺機器ID要不同
syncrepl rid=000
provider=ldap://另外一臺IP:389
bindmethod=simple
binddn="cn=Manager,dc=yonghui,dc=cn"
credentials=wangjing3344 ldap登陸的密碼
searchbase="dc=example,dc=cn" dn
schemachecking=off
type=refreshAndPersist
retry="60 +"
mirrormode on
hue相似,開啓後能夠在hue上直接設置hive權限
若是hue也結合了ldap,可是原來已經創建了一些用戶怎麼辦?在cm裏搜索Hue Service Advanced Configuration Snippet (Safety Valve) for hue_safety_valve.ini 增長內容
[desktop]
[[auth]]
backend=desktop.auth.backend.LdapBackend,desktop.auth.backend.PamBackend,desktop.auth.backend.AllowFirstUserDjangoBackend
這樣2種方式創建的用戶就均可以登陸了,可是要注意,原先在hue上創建的用戶也要在ldap上配置,否則他在hive sql裏是看不到任何數據庫的