趁我未失憶之前,記錄過去曾經的自己
三、查詢
3.顯示當前使用者擁有select許可權的列:
4.顯示當前系統中所有的角色(只有管理員使用者可以執行):
5.顯示當前會話的角色:
6.顯示指定組的被分配到的所有角色(只有管理員使用者和指定組內的使用者可以執行):
7.顯示乙個角色被授予的許可權或者顯示角色的乙個特定物件的所有許可權(只有管理員使用者和指定角色分配到的使用者可以執行):
8.顯示指定物件的乙個角色的所有被賦予的許可權(只有管理員使用者和指定角色分配到的使用者可以執行):
四、hue查詢
透過前面幾篇sentry安裝與hive,hue,impala整合,這篇說明如何增加許可權與控制許可權
首先我們要確保使用者組(group) 是否建立在sentry的admin group。而這裡的使用者組也就是和其他hadoop生態系統其他元件的group會是一致。這裡我用兩個使用者hive及lajo9006作為示例。
[root@s002 /]$ id hive
uid=764(hive) gid=765(hive) groups=765(hive)
[root@s002 /]$ id lajo9006
uid=1015183(lajo9006) gid=1031(lajo9006) groups=1031(lajo9006),10(wheel)
可以知道hive使用者他的組是hive,lajo9006使用者的組是lajo9006,並且要確保使用者在集群所有節點均存在。且在sentry的admin group控管,開啟sentry service進入configuration ,在搜尋框打上sentry.service.admin.group ,檢視lajo9006與hive 這兩個組是否存在。
使用beeline連線hiveserver2,並登入hive使用者,切記要用root 或管理許可權的使用者登入。
[root@s002 /]$ beeline
beeline>
!connect jdbc:hive2://你的主機名:10000
#使用hive登入
enter username for jdbc:hive2://你的主機名:10000: hive
enter password for jdbc:hive2://你的主機名:10000: ****
create role admin;
create role dread;
#設定admin角色可以對server 有all的許可權
grant
allon server server1 to role admin;
#設定dread角色可以對資料庫default中abc 表有查詢的許可權
grant
select
ontable
default
.abc to role dread;
我們這裡的組可以參考上述cm 頁面sentry group 管理這裡所述,所以這裡的組跟作業系統的組是一樣。
#hive使用者組有admin許可權
grant role admin to
group hive;
#lajo9006使用者組有dread 許可權
grant role dread to
group lajo9006
取消joyce使用者的admin 角色,操作命令如下:
revoke admin from
group joyce;
hive支援的許可權控制如下表所示。
操作解釋
all所有許可權
alter
允許修改元資料(modify metadata data of object)—表資訊資料
update
允許修改物理資料(modify physical data of object)—實際資料
create
允許進行create操作
drop
允許進行drop操作
index
允許建索引(目前還沒有實現)
lock
當出現併發的使用允許使用者進行lock和unlock操作
select
允許使用者進行select操作
show_database
允許使用者檢視可用的資料庫
show
databases
;
show
tables
;
show
columns
(from|in
) table_name [
(from|in
) db_name]
;
show roles;
show
current roles;
show role grant
group
(groupname)
;
show
grant role (rolename)
;
show
grant role (rolename)
on(object)
(objectname)
;
當前沒有這樣的使用一條語句來檢視角色下所有已授權的組。目前可以通過如下兩種方式來檢視角色下所有已授權的組:
1.可以通過hue ui的「security」介面檢視角色下所有已授權的組
2.當然如果需要將這些資訊儲存到自己的管理系統,則可以使用sql語句直接查詢sentry資料庫來獲取,sql語句如下:
select g.group_name
from sentry_group g
join sentry_role_group_map rg on rg.group_id = g.group_id
join sentry_role r on r.role_id = rg.role_id
where r.role_name =
'admin'
;
sentry搭建過程
sentry是乙個強大的分布式報錯資訊收集平台,圖形化程度很高,可以幫助我們直觀的發現當前部署的系統存在哪些問題。官方提供了兩種部署方案 處於操作方便的考慮,我選擇了docker。這種方法需要先安裝docker和docker compose 這一部分比較簡單,不過為了過程的完整性,還是把它列出來。d...
elk許可權控制 Kibana訪問許可權控制
elk平台搭建完成後,由於kibana的服務也是暴露在外網,且預設是沒有訪問限制的 外部所有人都可以訪問到 這明顯不是我們想要的,所以我們需要利用nginx接管所有kibana請求,通過nginx配置將kibana的訪問加上許可權控制,簡單常見的方式可以使用如下三種方式 方案一 利用nginx使用者...
sentry的相關命令
sentry不支援hive cli和sparksq。只支援beeline,beeline不知道從本地向hive導資料,也就是load data local inpath 許可權分為 select insert all 檢視當前使用者所有role show current roles 檢視所有role...