顧名思義,「權」表明「權力」,劃分了系統的職權,不一樣的用戶擁有不一樣的權力劃分;「限」表明「限制」,在權力劃分的基礎上對職能範圍進行了限制,本文所述的權限相對簡單,賦予不一樣角色看到不一樣菜單的權限。安全
權限控制能較好地解決系統安全問題,避免公司機密資料外泄,同時,不一樣部門使用系統時互不干擾,所以被企業普遍應用。設計
用戶是指系統的登陸用戶,能夠理解爲一系列的人員,例如登陸用戶爲張3、李4、王五和肖六這幾我的。blog
角色指用戶在系統中擔任的角色,是系統賦予用戶的頭銜,例如A公司後臺系統角色能夠定義爲:總裁、經理、員工。ip
在早期,傳統的權限模型就是爲用戶分配菜單權限,例如張三看到A、B、C菜單,李四看到B、C菜單,王五和肖六看到A、B、C菜單,這種傳統的權限模型簡單粗暴,直接爲用戶分配菜單便可,可是隨着公司員工激增,在動則數百人的公司裏,沒一個員工都要分配一次,顯然效率過低。開發
而且,在進行交互設計時,定義數百名用戶擁有的菜單權限,那須要寫數百行的表格。權限控制
RBAC,即基於角色的訪問控制(Role-Based Access Control),是優秀的權限控制模型,主要經過角色和權限創建管理,再賦予用戶不一樣的角色,來實現權限控制的目標。io
利用該模型來配置權限,直接優勢是角色的數量比用戶的數量更少,先把權限賦予角色,便可完成權限的分配;再爲用戶分配相應的角色,便可直接得到角色擁有的權限。class
交互設計的福音,只需定義有限的角色擁有哪些菜單權限便可。效率
在選擇第二種RBAC權限模型時,須要注意,用戶——角色——權限之間並不是是一對一的對應關係,例如,一個用戶能夠擁有多種角色,一個角色也能夠擁有多個權限,因此應該是多對多的關係,須要和開發說明清楚。登錄
如圖所示,經過權限控制後,不一樣用戶登陸進去看到的菜單顯示都不一致,基於角色來進行菜單展現。
(1)總裁角色,菜單A、B、C
(2)經理角色,菜單B、C
(2)員工角色,菜單C