成人深夜视频网站|日韩高清无码久久|中文a√在线天堂|亚洲黄网站在线看|欧美视频 第二页|日本 久草 天堂|高潮无遮挡黄视频|久久一级内射精品|国产操逼一级视频|五月天婷婷色AV

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

全網(wǎng)最全“權(quán)限系統(tǒng)”設(shè)計剖析

0
分享至

1 為什么需要權(quán)限管理

日常工作中權(quán)限的問題時時刻刻伴隨著我們,程序員新入職一家公司需要找人開通各種權(quán)限,比如網(wǎng)絡(luò)連接的權(quán)限、編碼下載提交的權(quán)限、監(jiān)控平臺登錄的權(quán)限、運營平臺查數(shù)據(jù)的權(quán)限等等。

在很多時候我們會覺得這么多繁雜的申請給工作帶來不便,并且如果突然想要查一些數(shù)據(jù),發(fā)現(xiàn)沒有申請過權(quán)限,需要再走審批流程,時間拉得會很長。那為什么還需要這么嚴格的權(quán)限管理呢?

舉個例子,一家支付公司有運營后臺,運營后臺可以查到所有的商戶信息,法人代表信息,交易信息以及費率配置信息,如果我們把這些信息不加篩選都給到公司的每一個小伙伴,那么跑市場的都可以操作商家的費率信息,如果一個不小心把費率改了會造成巨大的損失。

又比如商戶的信息都是非常隱秘的,有些居心不良的小伙伴把這些信息拿出來賣給商家的競爭對手,會給商家造成嚴重的不良后果。雖然這么做都是個別人人為的過錯,但是制度上如果本身這些信息不開放出來就能在很大程度上避免違法亂紀的事情發(fā)生了。

總體來講權(quán)限管理是公司數(shù)據(jù)安全的重要保證,針對不同的崗位,不同的級別看到的數(shù)據(jù)是不一樣的,操作數(shù)據(jù)的限制也是不一樣的。比如涉及到資金的信息只開放給財務(wù)的相關(guān)崗位,涉及到配置的信息只開放給運營的相關(guān)崗位,這樣各司其職能避免很多不必要的安全問題。

如何讓各個崗位的人在系統(tǒng)上各司其職,就是權(quán)限管理要解決的問題。

2 權(quán)限模型


2.1 權(quán)限設(shè)計

從業(yè)務(wù)分類上來講權(quán)限可以分為數(shù)據(jù)查看權(quán)限,數(shù)據(jù)修改權(quán)限等,對應(yīng)到系統(tǒng)設(shè)計中有頁面權(quán)限、菜單權(quán)限、按鈕權(quán)限等。菜單也分一級菜單、二級菜單甚至三級菜單,以csdn文章編輯頁面左側(cè)菜單欄為例是分了兩級菜單。菜單對應(yīng)的頁面里又有很多按鈕,我們在設(shè)計的時候最好把權(quán)限設(shè)計成樹形結(jié)構(gòu),這樣在申請權(quán)限的時候就可以一目了然的看到菜單的結(jié)構(gòu),需要哪些權(quán)限就非常的明了了。

如下圖所示:


按照這個架構(gòu),按鈕的父級是二級菜單,二級菜單的父級是一級菜單,這樣用戶申請權(quán)限的時候非常清晰的看到自己需要哪些權(quán)限。

2.2 為什么需要角色

權(quán)限結(jié)構(gòu)梳理清晰之后,需要思考怎么把權(quán)限分配給用戶,用戶少的情況下,可以直接分配,一個用戶可以有多個權(quán)限,統(tǒng)一一個權(quán)限可以被多個用戶擁有,用戶-權(quán)限的模型結(jié)構(gòu)如下所示:


這種模型能夠滿足權(quán)限的基本分配能力,但是隨著用戶數(shù)量的增長,這種模型的弊端就凸顯出來了,每一個用戶都需要去分配權(quán)限,非常的浪費管理員的時間和精力,并且用戶和權(quán)限雜亂的對應(yīng)關(guān)系會給后期帶來巨大的維護成本。用戶-權(quán)限對應(yīng)關(guān)系圖:


這種對應(yīng)關(guān)系在用戶多的情況下基本無法維護了。其實很多用戶負責同一個業(yè)務(wù)模塊所需要的權(quán)限是一樣的,這樣的話我們是不是可以借助第三個媒介,把需要相同的權(quán)限都分配給這個媒介,然后用戶和媒介關(guān)聯(lián)起來,用戶就擁有了媒介的權(quán)限了。這就是經(jīng)典的RBAC模型,其中媒介就是我們通常所說的角色。

2.3 權(quán)限模型的演進2.3.1 RBAC模型

有了角色之后可以把權(quán)限分配給角色,需要相同權(quán)限的用戶和角色對應(yīng)起來就可以了,一個權(quán)限可以分配給多個角色,一個角色可以擁有多個權(quán)限,同樣一個用戶可以分配多個角色,一個角色也可以對應(yīng)多個用戶,對應(yīng)模型如下所示:


這就是經(jīng)典的RBAC模型了(role-based-access-control),在這里面角色起到了橋梁左右,連接了用戶和權(quán)限的關(guān)系,每個角色可以擁有多個權(quán)限,每個用戶可以分配多個角色,這樣用戶就擁有了多個角色的多個權(quán)限。

同時因為有角色作為媒介,大大降低了錯綜復(fù)雜的交互關(guān)系,比如一家有上萬人的公司,角色可能只需要幾百個就搞定了,因為很多用戶需要的權(quán)限是一樣的,分配一樣的角色就可以了。這種模型的對應(yīng)關(guān)系圖如下所示:


用戶和角色,角色和權(quán)限都是多對多的關(guān)系,這種模型是最通用的權(quán)限管理模型,節(jié)省了很大的權(quán)限維護成本, 但是實際的業(yè)務(wù)千變?nèi)f化,權(quán)限管理的模型也需要根據(jù)不同的業(yè)務(wù)模型適當?shù)恼{(diào)整,比如一個公司內(nèi)部的組織架構(gòu)是分層級的,層級越高權(quán)限越大,因為層級高的人不僅要擁有自己下屬擁有的權(quán)限,二期還要有一些額外的權(quán)限。

RBAC模型可以給不同層級的人分配不同的角色,層級高的對應(yīng)角色的權(quán)限就多,這樣的處理方式可以解決問題,但是有沒有更好的解決辦法呢,答案肯定是有的,這就引出角色繼承的RBAC模型。

2.3.2 角色繼承的RBAC模型

角色繼承的RBAC模型又稱RBAC1模型。每個公司都有自己的組織架構(gòu),比如公司里管理財務(wù)的人員有財務(wù)總監(jiān)、財務(wù)主管、出納員等,財務(wù)主管需要擁有但不限于出納員的權(quán)限,財務(wù)總監(jiān)需要擁有但不限于財務(wù)主管的權(quán)限,像這種管理關(guān)系向下兼容的模式就需要用到角色繼承的RBAC模型。角色繼承的RBAC模型的思路是上層角色繼承下層角色的所有權(quán)限,并且可以額外擁有其他權(quán)限。

模型如下所示:


從模型圖中可以看出下級角色擁有的權(quán)限,上級角色都擁有,并且上級角色可以擁有其他的權(quán)限。角色的層級關(guān)系可以分為兩種,一種是下級角色只能擁有一個上級角色,但是上級角色可以擁有多個下級角色,這種結(jié)構(gòu)用圖形表示是一個樹形結(jié)構(gòu),如下圖所示:


還有一種關(guān)系是下級角色可以擁有多個上級角色,上級角色也可以擁有多個下級角色,這種結(jié)構(gòu)用圖形表示是一個有向無環(huán)圖,如下圖所示:


樹形圖是我們比較常用的,因為一個用戶一般情況下不會同時有多個直屬上級,比如財務(wù)部只能有一個財務(wù)總監(jiān),但是可以有多個財務(wù)主管和收納員。

2.3.3 帶約束的RBAC模型

帶約束的RBAC模型又成RBAC2模型。在實際工作中,為了安全的考慮會有很多約束條件,比如財務(wù)部里同一個人不能即是會計又是審核員,跟一個人同一時間不能即是運動員又是裁判員是一個道理的,又比如財務(wù)部的審核員不能超過2個,不能1個也沒有。因為角色和權(quán)限是關(guān)聯(lián)的,所以我們做好角色的約束就可以了。

常見的約束條件有:角色互斥、基數(shù)約束、先決條件約束等。

角色互斥: 如果角色A和角色B是互斥關(guān)系的話,那么一個用戶同一時間不能即擁有角色A,又擁有角色B,只能擁有其中的一個角色。

比如我們給一個用戶賦予了會計的角色就不能同時再賦予審核員的角色,如果想擁有審核員的角色就必須先去掉會計的角色。假設(shè)提交角色和審核角色是互質(zhì)的,我們可以用圖形表示:


基數(shù)約束: 同一個角色被分配的用戶數(shù)量可以被限制,比如規(guī)定擁有超級管理員角色的用戶有且只有1個;用戶被分配的角色數(shù)量也需要被限制,角色被分配的權(quán)限數(shù)量也可以被限制。

先決條件約束:用戶想被賦予上級角色,首先需要擁有下級角色,比如技術(shù)負責人的角色和普通技術(shù)員工角色是上下級關(guān)系,那么用戶想要用戶技術(shù)負責人的角色就要先擁有普通技術(shù)員工的角色。

2.4 用戶劃分2.4.1 用戶組

我們創(chuàng)建角色是為了解決用戶數(shù)量大的情況下,用戶分配權(quán)限繁瑣以及用戶-權(quán)限關(guān)系維護成本高的問題。抽象出一個角色,把需要一起操作的權(quán)限分配給這個角色,把角色賦予用戶,用戶就擁有了角色上的權(quán)限,這樣避免了一個個的給用戶分配權(quán)限,節(jié)省了大量的資源。

同樣的如果有一批用戶需要相同的角色,我們也需要一個個的給用戶分配角色,比如一個公司的客服部門有500多個人,有一天研發(fā)部研發(fā)了一套查詢后臺數(shù)據(jù)的產(chǎn)品,客服的小伙伴都需要使用,但是客服由于之前并沒有統(tǒng)一的一個角色給到所有的客服小伙伴,這時候需要新加一個角色,把權(quán)限分配給該角色,然后再把角色一個個分配給客服人員,這時候會發(fā)現(xiàn)給500個用戶一個個添加角色非常的麻煩。但是客服人員又有共同的屬性,所以我們可以創(chuàng)建一個用戶組,所有的客服人員都屬于客服用戶組,把角色分配給客服用戶組,這個用戶組下面的所有用戶就擁有了需要的權(quán)限。

RBAC模型添加用戶組之后的模型圖如下所示:


很多朋友會問,用戶組和角色有什么區(qū)別呢?簡單的來說,用戶組是一群用戶的組合,而角色是用戶和權(quán)限之間的橋梁。 用戶組把相同屬性的用戶組合起來,比如同一個項目的開發(fā)、產(chǎn)品、測試可以是一個用戶組,同一個部門的相同職位的員工可以是一個用戶組, 一個用戶組可以是一個職級,可以是一個部門,可以是一起做事情的來自不同崗位的人。

用戶可以分組,權(quán)限也可以分組,權(quán)限特別多的情況下,可以把一個模塊的權(quán)限組合起來成為一個權(quán)限組,權(quán)限組也是解決權(quán)限和角色對應(yīng)關(guān)系復(fù)雜的問題。

比如我們定義權(quán)限的時候一級菜單、二級菜單、按鈕都可以是權(quán)限,一個一級菜單下面有幾十個二級菜單,每個二級菜單下面又有幾十個按鈕,這時候我們把權(quán)限一個個分配給角色也是非常麻煩的,可以采用分組的方法把權(quán)限分組,然后把分好的組賦予角色就可以了。

給權(quán)限分組也是個技術(shù)活,需要理清楚權(quán)限之間的關(guān)系,比如支付的運營后臺我們需要查各種信息,賬務(wù)的數(shù)據(jù)、訂單的數(shù)據(jù)、商戶的數(shù)據(jù)等等,這些查詢的數(shù)據(jù)并不在一個頁面,每個頁面也有很多按鈕,我們可以把這幾個頁面以及按鈕對應(yīng)的權(quán)限組合成一個權(quán)限組賦予角色。加入權(quán)限組之后的RBAC模型如下所示:


實際工作中我們很少給權(quán)限分組,給用戶分組的場景會多一些,有的時候用戶組也可以直接和權(quán)限關(guān)聯(lián),這個看實際的業(yè)務(wù)場景是否需要,權(quán)限模型沒有統(tǒng)一的,業(yè)務(wù)越復(fù)雜業(yè)務(wù)模型會約多樣化。

2.4.2 組織

每個公司都有自己的組織架構(gòu),很多時候權(quán)限的分配可以根據(jù)組織架構(gòu)來劃分。因為同一個組織內(nèi)的小伙伴使用的大部分權(quán)限是一樣的。如下所示一個公司的組織架構(gòu)圖:


按照這個組織架構(gòu),每一個組織里的成員使用的基礎(chǔ)權(quán)限很可能是一樣的,比如人力資源都需要看到人才招聘的相關(guān)信息,市場推廣都需要看到行業(yè)分析的相關(guān)信息,按照組織來分配角色會有很多優(yōu)勢:

實現(xiàn)權(quán)限分配的自動化: 和組織關(guān)系打通之后,按照組織來分配角色,如果有新入職的用戶,被劃分在某個組織下面之后,會自動獲取該組織下所有的權(quán)限,無需人工分配。又比如有用戶調(diào)崗,只需要把組織關(guān)系調(diào)整就可以了,權(quán)限會跟著組織關(guān)系自動調(diào)整,也無需人工干預(yù)。這么做首先需要把權(quán)限和組織關(guān)系打通。

控制數(shù)據(jù)權(quán)限: 把角色關(guān)聯(lián)到組織,組織里的成員只能看到本組織下的數(shù)據(jù),比如市場推廣和大客定制,市場推廣針對的是零散的客戶,大可定制針對的是有一定體量的客戶,相互的數(shù)據(jù)雖然在一個平臺,但是只能看自己組織下的數(shù)據(jù)。

加入組織之后的RBAC模型如下所示:


用戶可以在多個組織中,因為組織也有層級結(jié)構(gòu),一個組織里只可以有多個用戶,所以用戶和組織的關(guān)系是多對多的關(guān)系,組織和角色的關(guān)系是一對一的關(guān)系。這個在工作中可以根據(jù)實際情況來確定對應(yīng)關(guān)系。

2.4.3 職位

一個組織下面會有很多職位,比如財務(wù)管理會有財務(wù)總監(jiān)、財務(wù)主管、會計、出納員等職位,每個職位需要的權(quán)限是不一樣的,可以像組織那樣根據(jù)職位來分配不同的角色,由于一個人的職位是固定的,所以用戶跟職位的對應(yīng)關(guān)系時一對一的關(guān)系,職位跟角色的對應(yīng)關(guān)系可以是多對多的關(guān)系。加入職位的RBAC模型如下所示:


2.5 理想的RBAC模型

RBAC模型根據(jù)不同業(yè)務(wù)場景的需要會有很多種演變,實際工作中業(yè)務(wù)是非常復(fù)雜的,權(quán)限分配也是非常復(fù)雜的,想要做出通用且高效的模型很困難。我們把RBAC模型的演變匯總起來會是一個支撐大數(shù)據(jù)量以及復(fù)雜業(yè)務(wù)的理想的模型。把RBAC、RBAC1、RBAC2、用戶組、組織、職位匯總起來的模型如下所示:


按照這個模型基本上能夠解決所有的權(quán)限問題,其中的對應(yīng)關(guān)系可以根據(jù)實際的業(yè)務(wù)情況來確定,一般情況下,組織和職位是一對多的關(guān)系,特殊情況下可以有多對多的情況,需要根據(jù)實際情況來定。

理想的RBAC模型并不是說我們一開始建權(quán)限模型就可以這么做,而是數(shù)據(jù)體量、業(yè)務(wù)復(fù)雜度達到一定程度之后可以使用這個模型來解決權(quán)限的問題,如果數(shù)據(jù)量特別少,比如剛成立的公司只有十幾個人,那完全可以用用戶-權(quán)限模型,都沒有必要使用RBAC模型。

3 權(quán)限系統(tǒng)表設(shè)計

3.1 標準RBAC模型表設(shè)計

標準RBAC模型的表是比較簡單了,要表示用戶-角色-權(quán)限三者之前的關(guān)系,首先要創(chuàng)建用戶表、角色表、權(quán)限表,用戶和角色是多對多的關(guān)系,角色和權(quán)限是多對多的關(guān)系,需要再創(chuàng)建兩章關(guān)系表,分別是用戶-角色關(guān)系表和角色-權(quán)限關(guān)系表。這六張表的ER圖如下所示:


3.2 理想RBAC模型表設(shè)計

理想的RBAC模型是標準RBAC模型經(jīng)過多次擴展得到的,表結(jié)構(gòu)也會比較復(fù)雜,因為要維護很多關(guān)系,如下圖所示是理想的RBAC模型的ER圖:


這里面需要強調(diào)的是角色互斥表,互斥的關(guān)系可以放在角色上,也可以放在權(quán)限上,看實際工作的需求。

4 結(jié)語

本文從易到難非常詳細的介紹了權(quán)限模型的設(shè)計,在工作中需要根據(jù)實際情況來定義模型,千人以內(nèi)的公司使用RBAC模型是完全夠用的,沒有必要吧權(quán)限模型設(shè)計的過于復(fù)雜。模型的選擇要根據(jù)具體情況,比如公司體量、業(yè)務(wù)類型、人員數(shù)量等??傊钸m合自己公司的模型就是最好的模型,權(quán)限模式和設(shè)計模式是一樣的,都是為了更好的解決問題,不要為了使用模型而使用模型。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
1-0!英超慘烈焦點戰(zhàn):3大核心傷退 任意球世界波 10.5億豪門登頂

1-0!英超慘烈焦點戰(zhàn):3大核心傷退 任意球世界波 10.5億豪門登頂

狍子歪解體壇
2025-09-01 01:32:07
傻眼了?孫繼海去法院起訴索賠266萬,張卓毅媽媽聰明反被聰明誤

傻眼了?孫繼海去法院起訴索賠266萬,張卓毅媽媽聰明反被聰明誤

吃瓜局
2025-08-29 13:54:03
2-1逆轉(zhuǎn)!中國隊終于奪冠,10年,等了整整10年,石宇奇哭成淚人

2-1逆轉(zhuǎn)!中國隊終于奪冠,10年,等了整整10年,石宇奇哭成淚人

墨羽怪談
2025-09-01 00:55:01
清華2025屆共4000名新生,其中高考統(tǒng)招僅1885人,占比不到一半

清華2025屆共4000名新生,其中高考統(tǒng)招僅1885人,占比不到一半

小蘿卜絲
2025-08-31 09:55:45
300萬人口,1.9萬風俗從業(yè)者!“鐵騎”蒙古國淪為韓國男人天堂?

300萬人口,1.9萬風俗從業(yè)者!“鐵騎”蒙古國淪為韓國男人天堂?

燕梳樓頻道
2025-08-31 15:56:42
韓國頂級名媛去世一年后,私密視頻曝光,被財閥當母狗,在KTV做

韓國頂級名媛去世一年后,私密視頻曝光,被財閥當母狗,在KTV做

社會醬
2025-08-31 10:15:44
8月31日俄烏最新:包圍圈合攏

8月31日俄烏最新:包圍圈合攏

西樓飲月
2025-08-31 19:45:50
為何以色列每次都能完成“讓領(lǐng)導(dǎo)先走”的戰(zhàn)術(shù)行動?

為何以色列每次都能完成“讓領(lǐng)導(dǎo)先走”的戰(zhàn)術(shù)行動?

高博新視野
2025-08-31 16:47:49
英媒:因中方針對美國商務(wù)部長的侮辱性言論,決定限制英偉達銷售

英媒:因中方針對美國商務(wù)部長的侮辱性言論,決定限制英偉達銷售

大道無形我有型
2025-08-31 23:37:13
下周要暴漲4大題材梳理:全部上熱搜!涉及芯片、美聯(lián)儲降息

下周要暴漲4大題材梳理:全部上熱搜!涉及芯片、美聯(lián)儲降息

元芳說投資
2025-08-31 19:40:30
山東球迷喊服不服?張稀哲:不論是場面還是比分,都全面落后

山東球迷喊服不服?張稀哲:不論是場面還是比分,都全面落后

懂球帝
2025-08-31 22:06:50
0-6慘敗山東泰山,北京國安遭受隊史聯(lián)賽最大比分失利

0-6慘敗山東泰山,北京國安遭受隊史聯(lián)賽最大比分失利

懂球帝
2025-08-31 21:34:24
全網(wǎng)最慘的打工人!服裝廠十幾名員工幫公司貸款2000萬付費上班

全網(wǎng)最慘的打工人!服裝廠十幾名員工幫公司貸款2000萬付費上班

恪守原則和底線
2025-08-31 16:54:49
朝鮮人民軍一號人物:筆記沒記完就被當場免職,這里面大有門道!

朝鮮人民軍一號人物:筆記沒記完就被當場免職,這里面大有門道!

林子說事
2025-08-31 19:36:30
捏蛋女已社死:正臉曝光面目猙獰,工作單位被扒,一家都是狠角色

捏蛋女已社死:正臉曝光面目猙獰,工作單位被扒,一家都是狠角色

吃瓜盟主
2025-08-30 15:53:04
如果不搬走這“三座大山”,中方人口,將在2056年被老美反超?

如果不搬走這“三座大山”,中方人口,將在2056年被老美反超?

詩意世界
2025-08-31 11:56:36
走是有原因的!滬媒爆料張鎮(zhèn)麟離開遼籃內(nèi)幕 和楊鳴有點關(guān)系

走是有原因的!滬媒爆料張鎮(zhèn)麟離開遼籃內(nèi)幕 和楊鳴有點關(guān)系

胖子噴球
2025-08-31 20:47:35
特朗普一反常態(tài),對中方發(fā)出邀請,美國挖下陷阱,我們絕不能上當

特朗普一反常態(tài),對中方發(fā)出邀請,美國挖下陷阱,我們絕不能上當

空天力量
2025-08-31 19:06:22
泰山海報神預(yù)言6-0!國安請“好好學(xué)習”,媒體人:全場最佳

泰山海報神預(yù)言6-0!國安請“好好學(xué)習”,媒體人:全場最佳

奧拜爾
2025-08-31 21:56:37
佩通坦剛被免職,中泰鐵路“立馬”被叫停?中泰關(guān)系將走向何方?

佩通坦剛被免職,中泰鐵路“立馬”被叫停?中泰關(guān)系將走向何方?

科普100克克
2025-08-31 16:36:11
2025-09-01 06:08:49
IT架構(gòu)師聯(lián)盟 incentive-icons
IT架構(gòu)師聯(lián)盟
IT架構(gòu)實戰(zhàn)分享
785文章數(shù) 7667關(guān)注度
往期回顧 全部

科技要聞

入手iPhone 16還是等17?兩款手機全面對比

頭條要聞

車輛占道違停小車逆行超車撞車 險企欲讓占道車擔責

頭條要聞

車輛占道違停小車逆行超車撞車 險企欲讓占道車擔責

體育要聞

破2億身家!莎拉波娃的"勝負腦"

娛樂要聞

胡歌是永遠都不會離婚的,原因很簡單

財經(jīng)要聞

罕見熱鬧的8月之后,A股將迎怎樣的9月

汽車要聞

家庭泛越野 大狗PLUS預(yù)售煥新11.28萬起

態(tài)度原創(chuàng)

藝術(shù)
親子
教育
旅游
健康

藝術(shù)要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

親子要聞

孩子不是讀書機器不是我們家長盲目炫耀學(xué)習的“利器”分數(shù)不值錢

教育要聞

南陽市一中2025級軍訓(xùn)紀實

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

精神科專家解答學(xué)習困難七大問題

無障礙瀏覽 進入關(guān)懷版