Hive許可權之審計

2021-09-07 12:39:22 字數 2731 閱讀 6649

因為在生產環境中大量使用hive。而hive的許可權又較弱,假設可以記錄全部hive操作,在增強安全性的同一時候,還可以統計hive表的使用頻率;同一時候假設可以記錄hql的開始和結束時間,則可以找出系統中花費時間較多的job,針對性的進行優化,因此跟蹤hive的使用軌跡,增強安全的同一時候也能方便問題定位。

怎樣記錄使用者操作了?hive hook為我們提供的方便的開放介面。。

hive預設使用hadoopdefaultauthenticator獲取執行hql的使用者,使用其返回的使用者進行許可權驗證。

為了使hive可以以**的模式去執行,我們須要提供自己的authenticator。返回真正的hql執行者。下面配置可設定authenticator:

hive.security.authenticator.manager

com.pplive.bip.hive.auth.authenticator

bip user authenticator

僅僅有管理員能夠開啟**模式。能夠使用下面方式傳遞**使用者:

hive -d bip.user=*** 或 hive --define bip.user=***

重寫authenticator**演示樣例:

public

classauthenticatorimplementshiveauthenticationprovider

@override

publicstringgetusername()else

}else

}@override

public

voidsetconf(configuration conf)catch(exception e)

if(ugi ==null)

this.username = ugi.getusername();

if(ugi.getgroupnames() !=null)           

}publicstring getproxy()catch(hiveexception e)

setinputs = context.getinputs();

setoutputs = context.getoutputs();

setreadtables =newhashset();

for(readentity input :inputs)

}  setwritetables =newhashset();

for(writeentity output :outputs)

}hiveauthenticationproviderauthenticationprovider = sessionstate.get().getauthenticator();                                     

if(authenticationproviderinstanceofauthenticator)    

stringusername = sessionstate.get().getauthenticator().getusername();

logger.debug(string.format("%s execute %s, read tables:%s, writetables:%s", username, context.getcommand(),readtables, writetables));  

execute hook記錄job狀態:

public

classexecutehookimplementsexecutewithhookcontext   

stringresult =null;

switch(hookcontext.gethooktype())    

if(hookcontext.gethooktype()!= hookcontext.hooktype.pre_exec_hook

&&authenticationproviderinstanceofauthenticator)       

}public

classdriverrunhookimplementshivedriverrunhook    

starttime = system.currenttimemillis();

}@override

public

voidpostdriverrun(hivedriverrunhookcontext hookcontext)

throwsexception       

}

hive表級許可權控制 Hive許可權管理

一.storage based authorization in the metastore server 基於儲存的授權,可以對metastore中的元資料進行保護,但是沒有提供更加細粒度的訪問控制 例如 列級別 行級別等 啟用當前認證方式後,dfs,add,delete,compile,rese...

hive許可權問題

1.給某個使用者授權 grant select on database ffcs cheny to user ffcs cheny 2.ddlstatement createdatabasestatement switchdatabasestatement dropdatabasestatement...

Hive許可權管理

角色的新增 刪除 檢視 設定 create role role name 建立角色 drop role role name 刪除角色 set role role name all none 設定角色 show current roles 檢視當前具有的角色 show roles 檢視所有存在的角色 ...