1. 程式人生 > >使用者許可權管理模組的資料庫設計

使用者許可權管理模組的資料庫設計

RBAC(Role-Based Access Control,基於角色的訪問控制),就是使用者通過角色與許可權進行關聯。簡單地說,一個使用者擁有若干角色,每一個角色擁有若干許可權。這樣,就構造成“使用者-角色-許可權”的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。(如下圖)



角色是什麼?可以理解為一定數量的許可權的集合,許可權的載體。例如:一個論壇系統,“超級管理員”、“版主”都是角色。版主可管理版內的帖子、可管理版內的使用者等,這些是許可權。要給某個使用者授予這些許可權,不需要直接將許可權授予使用者,可將“版主”這個角色賦予該使用者。 

當用戶的數量非常大時,要給系統每個使用者逐一授權(授角色),是件非常煩瑣的事情。這時,就需要給使用者分組,每個使用者組內有多個使用者。除了可給使用者授權外,還可以給使用者組授權。這樣一來,使用者擁有的所有許可權,就是使用者個人擁有的許可權與該使用者所在使用者組擁有的許可權之和。(下圖為使用者組、使用者與角色三者的關聯關係)

在應用系統中,許可權表現成什麼?對功能模組的操作,對上傳檔案的刪改,選單的訪問,甚至頁面上某個按鈕、某個圖片的可見性控制,都可屬於許可權的範疇。有些許可權設計,會把功能操作作為一類,而把檔案、選單、頁面元素等作為另一類,這樣構成“使用者-角色-許可權-資源”的授權模型。而在做資料表建模時,可把功能操作和資源統一管理,也就是都直接與許可權表進行關聯,這樣可能更具便捷性和易擴充套件性。(見下圖)



請留意許可權表中有一列“許可權型別”,我們根據它的取值來區分是哪一類許可權,如“MENU”表示選單的訪問許可權、“OPERATION”表示功能模組的操作許可權、“FILE”表示檔案的修改許可權、“ELEMENT”表示頁面元素的可見性控制等。

這樣設計的好處有二。其一,不需要區分哪些是許可權操作,哪些是資源,(實際上,有時候也不好區分,如選單,把它理解為資源呢還是功能模組許可權呢?)。其二,方便擴充套件,當系統要對新的東西進行許可權控制時,我只需要建立一個新的關聯表“許可權XX關聯表”,並確定這類許可權的許可權型別字串。

這裡要注意的是,許可權表與許可權選單關聯表、許可權選單關聯表與選單表都是一對一的關係。(檔案、頁面許可權點、功能操作等同理)。也就是每新增一個選單,就得同時往這三個表中各插入一條記錄。這樣,可以不需要許可權選單關聯表,讓許可權表與選單表直接關聯,此時,須在許可權表中新增一列用來儲存選單的ID,許可權表通過“許可權型別”和這個ID來區分是種類型下的哪條記錄。

到這裡,RBAC許可權模型的擴充套件模型的完整設計圖如下:



隨著系統的日益龐大,為了方便管理,可引入角色組對角色進行分類管理,跟使用者組不同,角色組不參與授權。例如:某電網系統的許可權管理模組中,角色就是掛在區局下,而區局在這裡可當作角色組,它不參於許可權分配。另外,為方便上面各主表自身的管理與查詢,可採用樹型結構,如選單樹、功能樹等,當然這些可不需要參於許可權分配。

相關推薦

詳解spring整合shiro許可權管理資料庫設計

現在基本上所有的後臺系統都逃不過許可權管理這一塊,這算是一個剛需了。現在我們來整合shiro來達到顆粒化許可權管理,也就是從連線選單到頁面功能按鈕,都進行許可權都驗證,從前端按鈕的顯示隱藏,到後臺具體功能方法的許可權驗證。 首先要先設計好我們的資料庫,先來看一張比較粗糙的資

許可權管理系統資料庫設計

一,前言 許可權管理系統的應用者應該有三種不同性質上的使用,A,使用許可權B,分配許可權C,授權許可權 本文只從《使用許可權》和《分配許可權》這兩種應用層面分析,暫時不考慮《授權許可權》這種。二,初步分析使用者和角色 說到許可權管理,首先應該想到,當然要設計一個使用者表,一

使用者許可權管理模組資料庫設計

RBAC(Role-Based Access Control,基於角色的訪問控制),就是使用者通過角色與許可權進行關聯。簡單地說,一個使用者擁有若干角色,每一個角色擁有若干許可權。這樣,就構造成“使用者-角色-許可權”的授權模型。在這種模型中,使用者與角色之間,角色與許可

Rbac許可權管理模組設計邏輯思路

RBAC(Role-Based Access Control,基於角色的訪問控制),就是使用者通過角色與許可權進行關聯。簡單地說,一個使用者擁有若干角色,每一個角色擁有若干許可權。這樣,就構造成“使用者-角色-許可權-資源”的授權模型。在這種模型中,使用者與角色

使用者和角色:通用許可權管理系統資料庫表結構如何設計

一,前言 許可權管理系統的應用者應該有三種不同性質上的使用,A,使用許可權B,分配許可權C,授權許可權 本文只從《使用許可權》和《分配許可權》這兩種應用層面分析,暫時不考慮《授權許可權》這種。二,初步分析使用者和角色 說到許可權管理,首先應該想到,當然要設計一個使用者表,一個

酒店管理系統-資料庫設計說明書

資料庫設計說明書 1引言 1.1編寫目的 本文件為**酒店管理系統需求分析報告,為**酒店管理系統的設計的主要依據,主要針對**酒店管理系統的概要設計和詳細設計人員,作為專案驗收的主要依據。 1.2背景 本軟體全稱為**酒店管理系統。 軟體適用於普通二星級酒店、賓館。 1

創新課程管理系統資料庫設計心得

因為創新課程管理系統這一個專案,是一個從無到有,沒有標準可以去參考的一個專案。 這個專案專門針對該課程進行設計,所以需求的功能點很多,因此資料庫有多次設計,更改再推翻重新設計再更改。 因為使用者有多個型別,系統管理員,學校管理員,老師,助教,學生。 一開始的時候想把每一個都單獨設計為一個表,然後登陸

Simba框架之許可權管理模組--simba-permission

許可權管理,相信大家都不陌生,幾乎所有的系統都會涉及到,Spring Security, Apache Shiro,相信大家都接觸過或者聽說過,是大家用的最多的開源許可權管理元件,但是這兩個元件都相對而言,功能太過於強大,強大的功能自然就會產生複雜性。但是很多系統其實許可權管

YII框架中的srbac許可權管理模組的安全與使用(版本是1.1.20)

0x01 前言 srbac的原理: YII框架的srbac模組是一個專門管理許可權的一個模組,那它是怎麼管理許可權的呢。我們知道YII框架的網頁顯示是由控制器實現的,控制器繼承父類CController和Controller,每個控制器中又有許多方法,就是以action開頭

web開發之商城訂單模組資料庫設計

需求:商城系統,使用者購買商品,生成訂單。 思路: 使用者下訂單購買商品,分成三部分來看。 第一部分:訂單本身,包括訂單狀態,訂單總額,物流,支付等資訊; 第二部分:訂單商品資訊,包括購買商品的名稱,規格,數量,價格等資訊; 第三部分:收貨人資訊,包括收貨人姓名,地址,聯

RDIFramework.NET ━ .NET快速資訊化系統開發框架- 4.10 使用者許可權管理模組

RDIFramework.NET ━ .NET快速資訊化系統開發框架 4.10 使用者許可權管理模組 4.10 使用者許可權管理模組   在實際應用中我們會發現,許可權控制會經常變動,如:需要調整角色的分配,需要收回與授予某些角色、使用者可訪問的模組(選單)與相應的操作許可權、需要給某些角色新增與移

RDIFramework.NET ━ .NET快速資訊化系統開發框架- 4.11 角色許可權管理模組

RDIFramework.NET ━ .NET快速資訊化系統開發框架 4.11 角色許可權管理模組 4.11 角色許可權管理模組   角色許可權管理模組主要是對角色的相應許可權進行集中設定。在角色許可權管理模組中,管理員可以新增或移除指定角色所包含的使用者、可以分配或授予指定角色的模組(選單)的訪問許可

基於Java Web的許可權管理系統的設計與實現

許可權管理系統在去年的專案中使用過,後來一直想單獨拿出來做一個許可權管理系統,一直拖著,今年做的部落格當中也使用到了,趁著有時間就把這個Demo寫出來了,使用的是SSM框架 + Maven實現的,利用過

許可權管理資料庫程式碼編寫)

--許可權表(選單表) create table Premisson_Func (     Id int primary key identity(1,1),     Name nvarchar(128), ---選單名     url nvarchar(216), ---

vue+element-ui,樹形表格,可以做許可權管理模組,可摺疊,全選,部分全選

html部分: <ul class="role-table col-xs-offset-2 col-md-offset-1 col-sm-offset-2"> <li class="header"> <div cla

試題庫管理系統--資料庫設計

一、概要設計 1.1 背景和意義     目前,許多高校絕大多數課程還採用考教統一的模式來完成教學過程,這種傳統的考試模式在教學到實施考試的過程帶有很大的主觀隨意性和不規範性。另外隨著各高校近年來學生規模的擴大,教學任務日益繁重,教師的工作量相應的不斷增加。迫切需要計算機

許可權管理表結構設計

一、使用者表USER_INFO 1.1、指令碼 -- Create table create table USER_INFO ( id NUMBER(26) not null,--序列號 user_id

圖書管理系統資料庫設計實驗報告

圖書管理系統設計實驗報告 PB15051157 茹思淞 一、實驗題目及其要求 編寫一個圖書管理系統,要求具有以下內容: 1)儲存圖書資訊、採購和淘汰情況、租借情況 2)實現圖書採購、淘汰、租借功能。 3)

最簡易的許可權管理模型 和 標準許可權管理模組 和 複雜許可權系統

1、 最簡易的許可權管理模型 (javaweb) 適用於: 使用者種類不多,系統功能不是特別複雜  在使用者表中新增角色欄位,用欄位區分使用者屬於哪類角色   好處: 使用起來方便,編碼量不大 缺點:

許可權管理資料表設計說明(五張表)

B/S系統中的許可權比C/S中的更顯的重要,C/S系統因為具有特殊的客戶端,所以訪問使用者的許可權檢測可以通過客戶端實現或通過客戶端+伺服器檢測實現,而B/S中,瀏覽器是每一臺計算機都已具備的,如果不建立一個完整的許可權檢測,那麼一個“非法使用者”很可能就能通過瀏覽器輕易訪問到B/S系統中的所有功能。因此B