RBAC
(Role-Based Access Control,基於角色的訪問控制),就是用戶經過角色與權限進行關聯。簡單地說,一個用戶擁有若干角色,每個角色擁有若干權限。這樣,就構形成「用戶-角色-權限」的受權模型。在這種模型中,用戶與角色之間,角色與權限之間,通常是多對多
的關係。laravel
上圖數據庫模型分析:git
permission_role.permission_id
是表permissions
外鍵。permission_role.role_id
是表roles
外鍵。role_user.role_id
是表roles
外鍵。role_user.permission_id
是表users
外鍵。角色能夠理解爲必定數量的權限的集合,權限的載體。例如:一個論壇系統,「超級管理員」、「版主」都是角色。版主可管理版內的帖子、可管理版內的用戶等,這些是權限。要給某個用戶授予這些權限,不須要直接將權限授予用戶,可將「版主」這個角色賦予該用戶。github