HBASE的user底層使用的還是hadoop的user;
構造connection類:
其中可以user參數
進入HBASE的user類:有一個構造方法:
可以看到使用子類SecureHadoopUser
SecureHadoopUser的構造方法參數UserGroupInformation中看到:
其中封裝user的則是hadoop.security的user類。
(初始化的時候會執将所有表的權限資訊寫到對應table的node節點上)
在HBASE執行put以及delete操作觸發updateAcl更新操作:
擷取權限監控的znode
讀取acl表的所有權限:
并且會解析資料成指定格式,寫入zookeeper,并且轉成位元組;
解析核心代碼:
則是最終寫入zookeeper的格式資料
序列化寫入資料:
zookeeper上node子znode資料變更,會執行更新cache操作;
相應的執行refreshAuthManager操作,包括
然後重新将新權限資訊放進cache中,提供HBASE權限的檢查check操作。
當然,再删除的時候,資料資訊也會執行相應的delete操作。
在TableAuthManager權限檢查類中,三種cache,
分别在處理超級使用者superuser,namespace及table的使用者權限資訊