1. 程式人生 > >角色許可權設計方案

角色許可權設計方案

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


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

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


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



設計使用者組是否必要:

有人認為設計使用者組時還需要為使用者新增使用者組以及為使用者組新增許可權,這和直接對單個使用者新增許可權異曲同工.但是當需要給已經存在的使用者賦予許可權時,如果之前使用了使用者組這樣的設計模式,那麼便可以直接在使用者組中賦予許可權,不必去給每個使用者賦予許可權.而且使用使用者組也是體現使用者層級關係的一種結構,所以個人認為使用使用者組是有必要的.


相關推薦

許可權設計文章彙總 應用程式許可權設計 擴充套件RBAC使用者角色許可權設計方案 java使用者角色許可權設計

  如何設計網站許可權系統? https://www.zhihu.com/question/20313385/answer/118095995 我的轉載:https://www.cnblogs.com/hao-1234-1234/p/9850967.html 應用程式許可權設計 http:

shiro---擴充套件RBAC使用者角色許可權設計方案

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

角色許可權設計方案

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

JAVA基於角色的系統許可權設計方案

人有時候會犯迷糊,會鑽牛角尖。比如我把spring攔截器和AOP時間長搞混淆了,在此記一下吧! 第一種就是使用AOP的前置通知,切到方法上。 第二種就是攔截器了,但是要注意restful風格的url怎麼處理(資源的URL要以正則表示式存資料庫,到時候和request中請求

位運算在角色許可權設計中的應用(轉)

1.引言 2.位運算基礎 3.位運算在角色許可權設計中的應用 4.為什麼in32的範圍是-2^31 ~ 2^31-1 ? 5.同餘的概念 6.模的概念幫助理解補數和補碼。  一、引言 這周在做一個新增角色許可權需求時,遇到下面這樣一行程式碼,這篇文章將圍繞這行程式碼展開。 us

java角色許可權設計

java使用者角色許可權設計   實現業務系統中的使用者許可權管理  B/S系統中的許可權比C/S中的更顯的重要,C/S系統因為具有特殊的客戶端,所以訪問使用者的許可權檢測可以通過客戶端實現或通過客戶端+伺服器檢測實現,而B/S中,瀏覽器是每一臺計算機都已具備的,如果不建立一個

前後端分離模式下的許可權設計方案

前後端分離模式下,所有的互動場景都變成了資料,傳統業務系統中的許可權控制方案在前端已經不再適用,因此引發了我對許可權的重新思考與設計。 許可權控制到底控制的是什麼? 在理解許可權控制之前,需要明白兩個概念:資源和許可權。什麼是資源,對於一個系統來說,系統內部的所有資訊都可以理解為這個系統的資源。頁面是資源、資

複雜資料許可權設計方案

需求:有個許可權樹,資源掛在樹的節點上面。父節點的許可權可以訪問所有子節點的資源。 更具體點,一個公司有一個部門,這個部門是棵樹(許可權樹)。每釋出一個課程,都需要設定屬於哪個部門的許可權。每個人屬於部門。這樣,來一個人,他可以看到該部門所有子部門的所有資料。 方案1:基於資料庫的實現 這是一棵許可

資料許可權設計——基於EntityFramework的資料許可權設計方案:一種設計思路

 前言:“我們有一個訂單列表,希望能夠根據當前登陸的不同使用者看到不同型別的訂單資料”、“我們希望不同的使用者能看到不同時間段的掃描報表資料”、“我們系統需要不同使用者檢視不同的生產報表列”。諸如此類,最近經常收到專案上面的客戶提出的這種問題,即所謂的“資料許可權”,經過開會討論決定:在目前的開發框架上面搭建

Web開發中的使用者角色許可權設計總結

在Web開發中關於許可權管理設計大抵涉及到兩個方面:一:功能方面許可權設計;二:資源方面許可權設計。二者比較來看,功能方面許可權的可重用性更高。 1.關於許可權: 按照角色許可權的最簡單的設計 名稱 描述 使用者 不具備管理功能 管理員 具備管理普通使用

百萬年薪python之路 -- RBAC角色許可權設計

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

【轉載】使用者·角色·許可權·表的設計

轉自:https://www.cnblogs.com/oo_o/p/8213448.html 設計一個靈活、通用、方便的許可權管理系統。        在這個系統中,我們需要對系統的所有資源進行許可權控制,那麼系統中的資源包括哪些呢

經典角色許可權系統設計五張表及拓展應用

設計基礎:使用者、角色、許可權三大核心表,加上使用者角色、角色許可權兩個對映表(用於給使用者表聯絡上許可權表)。這樣就可以通過登入的使用者來獲取許可權列表,或判斷是否擁有某個許可權。   大致用到5張表:使用者表(UserInfo)、角色表(RoleInfo)、

使用者角色許可權系統完整設計(基於shiro)

一:shiro簡介 1.1:shiro可以幫助我們完成:認證,授權,加密,會話管理,與web整合,快取等。shiro不會去維護使用者沒維護許可權。這些需要我們自己設計提供,然後通過想應的介面注入給shiro。 1.2:shiro的API簡單介紹 Aut

RBAC(基於角色的訪問控制)-許可權設計

RBAC(Role Based Access Control)基於角色的訪問控制.RBAC0是RBAC的核心,主要有四部分組成:1、使用者(User)2、角色(Role)3、許可(Permission)4、會話(Session)RBAC2是RBAC的約束模型RBAC(Role

計蒜課/ 微軟大樓設計方案/中等(xjb)

得到 con 設計 bre nan lan http pen 情況 題目鏈接:https://nanti.jisuanke.com/t/15772 題意:中文題誒~ 思路:對於坐標為p1(x1, y1), p2(x2, y2) 的兩個核心, 其中 x1 <=

微軟大樓設計方案

use fin pri ons 限制 name 一次 eset open 微軟大樓設計方案(困難) 近日,微軟新大樓的設計方案正在廣泛征集中,其中一種方案格外引人註目。在這個方案中,大樓由 nn 棟樓組成,這些樓從左至右連成一排,編號依次為 11 到 nn,其中第 i

OA系統權限管理設計方案

itl group 權限列表 con 簡化 項目代碼 -s 當前 rtm (轉)OA系統權限管理設計方案 OA系統權限管理設計方案 不同職責的人員,對於系統操作的權限應該是不同的。優秀的業務系統,這是最基本的功能。 可以對“組&rd

小程序公眾號直播系統優化設計方案

小程序公眾號直播 小程序公眾號直播售貨開發技術 小程序企業直播售貨開發、共享鏈小程序系統開發、微商三級分銷管理開發、掃碼查價格查防偽開發,請咨詢:電13809776917 微15820335709 小程序公眾號直播最近很火爆,可以看出能給企業帶來了商機,也能給消費者帶來了便利

[收集] 各式各樣的 無限級分類 的數據庫設計方案

where 數據庫 位數 sel 其中 三級 mat sco tiny 第一種方案: 表為兩張,一張分類表,一張信息表。 表1: `ID` int(10), `cID` tinyint(3) , `title` varchar(255), 表2:`cID` tinyint(