在线不卡视频一区二区_91免费在线观看网站_国产视频在线看_91精品国产色综合久久

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

在系統(tǒng)登錄模塊中,常見這樣的問題場景:系統(tǒng)用戶有不同的用戶身份,不同身份的用戶登錄進系統(tǒng)后只能看到自己對應權限的功能菜單,系統(tǒng)管理員可以方便對用戶進行授權以及取消權限。

實現(xiàn)這樣一個功能模塊通常使用基于角色的權限訪問控制,即RBAC(Role Based Access Control)模型。RBAC模型是實現(xiàn)權限資源管理控制的一個普遍通用的模型。

RBAC簡介

基于角色的訪問控制(RBAC)是實現(xiàn)軟件系統(tǒng)安全策略的一種有效的訪問控制方式。其基本思想是,對系統(tǒng)操作的各種權限不是直接授予具體的用戶,而是在用戶集合與權限集合之間建立一個角色集合。每一種角色對應一組相應的權限。一旦用戶被分配了適當?shù)慕巧螅撚脩艟蛽碛写私巧乃胁僮鳈嘞蕖?/p>

注:ACL模型,即訪問控制列表,一般是指將用戶與權限直接關聯(lián)起來的權限管理方式。

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

RBAC通過定義角色的權限,并對用戶授予某個角色從而來控制用戶的權限,實現(xiàn)了用戶和權限的邏輯分離(區(qū)別于ACL模型),這樣做的好處是,不必在每次創(chuàng)建用戶時都進行分配權限的操作,只要分配用戶相應的角色即可,同樣地,要對用戶取消權限時,只需要取消用戶與角色的關聯(lián)。通常來講,角色的權限相對穩(wěn)定,對角色權限變更比用戶權限變更要少得多,所以,RBAC簡化了用戶的權限管理。

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

資源是指系統(tǒng)中可訪問的模塊、功能等可分配的權限的集合。

角色是指真實場景中的某一類用戶,比如系統(tǒng)管理員、普通員工、部門經(jīng)理、財務主管等等,通常不同的角色具有不同的權限。角色可以根據(jù)需要自由創(chuàng)建,角色總是對應一組資源。

用戶是指可訪問系統(tǒng)的人,一般每個用戶都有唯一的UID識別,用戶可以被授予不同角色。

例如,有一個“公告管理”功能,使用者的角色有兩種:管理員和普通用戶。管理員和普通用戶被授予不同權限,管理員擁有該功能模塊的所有權限,而普通用戶只有部分權限:

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

RBAC有4個模型概念,分別是RBAC0、RBAC1、RBAC2、RBAC3。

  • RBAC0為基礎模型,即本文前面介紹的內(nèi)容。主要有3個元素:用戶、角色、權限(資源)。用戶與角色、角色與權限之間都是多對多的關系。
  • RBAC1是在RBAC0的基礎上,增加了角色間的繼承關系。這種繼承關系可以是多繼承,也可以是單繼承。適用于角色之間層次分明,可以給角色分組分層的場景。
  • RBAC2是在RBAC0的基礎上,增加了角色間的約束關系。比如互斥約束,同一用戶只能分配到一組互斥角色集合中的一個角色;基數(shù)約束,一個角色被分配到的用戶數(shù)量受限,一個用戶可擁有的角色數(shù)量受限,一個角色可以擁有的權限資源受限;先決條件約束,僅當用戶已經(jīng)擁有某一角色時才能給他分配另一種角色,對于角色來講當某一角色擁有某些權限的時候才能給該角色分配另一些權限。運行互斥約束,一個用戶擁有兩個角色,但在運行中不可同時激活這兩種角色。
  • RBAC3是RBAC1和RBAC2的組合運用。

可以看到,重點是RBAC基礎模型,其他幾種主要是對角色這個元素的擴充,以適應特定的業(yè)務場景。對于絕大多數(shù)場景來說,RBAC基礎模型就可以滿足。

數(shù)據(jù)庫表

實現(xiàn)一個基于RBAC模型的登錄模塊功能,一般需要5張基本數(shù)據(jù)庫表,分別是:用戶表、資源表(系統(tǒng)模塊菜單及功能表)、角色表、用戶角色關聯(lián)表、角色權限表。

本文講解的示例是基于RBAC基礎模型,同時從功能完備性和易于實現(xiàn)方面考慮,給出了7張表。在以上5張表的基礎上,增加了用戶權限表、功能項常量表。

示例中只給出了各個表的一些主要字段,具體使用可根據(jù)需要增減。比如一般常用于審計的create_time、update_time、create_by、update_by等字段。

1、用戶表

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

用戶表存儲可登錄系統(tǒng)的賬號信息。

  • user_code: 用戶登錄賬號,在表中唯一性約束。本例中user_code字段作為UID標識字段。
  • password:用戶登錄密碼,安全性考慮,一般存儲密文。

2、菜單資源表

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

菜單權限表存儲系統(tǒng)所有的功能項,包括各級菜單以及與之相對應的操作權限點。這個表反映了系統(tǒng)的全部功能集合,一般由開發(fā)人員或運維人員進行維護。

  • menu_code: 菜單項編碼,系統(tǒng)內(nèi)部使用,在表中唯一性約束,標識一個具體的菜單項。菜單項編碼可以按照一定的規(guī)則編碼,比如一級菜單m01、m02,二級菜單m0101、m0102、m0201、……,按照這樣的規(guī)則,可以根據(jù)編碼識別出菜單級別。
  • menu_name: 用于在系統(tǒng)界面上展示的菜單項名稱。
  • parent:上級菜單標識。比如m0201的上級為m02。
  • url: 菜單項對應的鏈接地址。
  • icon:菜單項圖標對應的鏈接地址。
  • display_order: 菜單項在系統(tǒng)界面上展示的順序,SQL查詢時,根據(jù)該字段order by排序。
  • function_code: 存儲某一菜單項對應的全部功能點代碼。比如insert;update;query;delete; 功能點代碼來自于下文第7個表。

3、角色表

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

角色表存儲用戶創(chuàng)建的角色。

  • role_code: 角色代碼,唯一標識一個角色,在表中有唯一性約束。
  • role_name: 角色名稱。

4、角色權限表

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

角色權限表存儲角色與權限(資源)的映射關系,多對多關系。

  • role_code:引用自角色表中的role_code字段。
  • menu_code:引用自菜單資源表menu_code字段。
  • function_code:字段內(nèi)容與菜單資源表function_code字段內(nèi)容相似。比如菜單資源表該字段內(nèi)容為insert;update;query;delete,但某個角色不具有對應菜單功能的刪除操作,則function_code字段內(nèi)容為 insert;update;query。

5、用戶角色表

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

用戶角色表存儲用戶與角色的映射關系,多對多關系。

  • user_code:引用自用戶表user_code字段。
  • role_code:引用自角色表role_code字段。

以上5張表即是RBAC基礎模型所必須的表。

6、用戶權限表

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

用戶權限表存儲用戶與權限(資源)的映射關系,多對多關系。

增加此表的作用是為了實現(xiàn)一個通用的權限管理功能,既可以通過角色給用戶授權,也可以通過給用戶直接綁定權限授權。即兼容RBAC模型與ACL模型。

在一些系統(tǒng)中,當存在一人多崗,用戶數(shù)量較少,但角色數(shù)量需要較多,這種情況使用ACL模型更為方便。

  • user_code:引用自用戶表user_code字段。
  • menu_code:引用自菜單資源表menu_code字段。
  • function_code:字段內(nèi)容與菜單資源表function_code字段內(nèi)容相似。比如菜單資源表該字段內(nèi)容為insert;update;query;delete,但某個用戶不具有對應菜單功能的刪除操作,則function_code字段內(nèi)容為 insert;update;query。

7、功能項常量表

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

功能項常量表存儲的內(nèi)容如下:

什么是基于角色訪問控制(RBAC)技術?詳解rbac權限管理的實現(xiàn)方法

功能項常量表存儲功能點代碼與名稱的對應信息。主要用于維護上面表中function_code字段功能點對應的功能名稱。

  • function_code:具體功能代碼,如“新增”代碼為insert,“刪除”代碼為delete。唯一標識一個功能操作,在表中唯一性約束。
  • function_name:功能代碼對應的在系統(tǒng)界面展示的功能名稱。

上面表中function_code是多個功能點代碼用分號(??拼接起來存儲的,具體代碼實現(xiàn)時對字符串分割后可以對應此表得到功能點名稱。

這樣設計是一個小的技巧,以簡化功能菜單表存儲的內(nèi)容,以及簡化權限與角色、與用戶的映射。

實現(xiàn)要點

在理解清楚這些表之后,以下列出幾個實現(xiàn)要點。

  • 將系統(tǒng)菜單功能錄入菜單表。注意menu_code、function_code的編碼規(guī)則。
  • 將系統(tǒng)中全部的功能點錄入功能項常量表。
  • 實現(xiàn)用戶管理,對用戶表的單表操作。
  • 實現(xiàn)角色管理,對角色表的單表操作。
  • 實現(xiàn)用戶角色設置功能,對用戶角色表操作,根據(jù)所選擇的用戶執(zhí)行先delete后insert數(shù)據(jù),在同一數(shù)據(jù)庫事務中處理。
  • 實現(xiàn)角色權限設置功能,對角色權限表操作,根據(jù)所選擇的角色執(zhí)行先delete后insert數(shù)據(jù),在同一數(shù)據(jù)庫事務中處理。
  • 實現(xiàn)用戶權限設置功能,對用戶權限表操作,根據(jù)所選擇的用戶執(zhí)行先delete后insert數(shù)據(jù),在同一數(shù)據(jù)庫事務中處理。
  • 在查詢用戶權限時,要同時查詢用戶權限以及用戶所具有角色的權限,這兩者的數(shù)據(jù)可能存在重復,例如:用戶權限表維護了用戶A具有“公告管理”的權限,同時用戶A具有的角色“普通用戶”也具有“公告管理”的權限,此時,在后端接口中去重處理即可。

聲明:本文由網(wǎng)站用戶維維發(fā)表,超夢電商平臺僅提供信息存儲服務,版權歸原作者所有。若發(fā)現(xiàn)本站文章存在版權問題,如發(fā)現(xiàn)文章、圖片等侵權行為,請聯(lián)系我們刪除。

(0)
上一篇 2023年9月5日 11:40:44
下一篇 2023年9月5日 11:44:42

相關推薦

發(fā)表回復

您的電子郵箱地址不會被公開。 必填項已用*標注

在线不卡视频一区二区_91免费在线观看网站_国产视频在线看_91精品国产色综合久久
欧美日韩国产片| 永久免费精品影视网站| 久久久久久夜| 欧美一区二视频| 午夜精品久久久久久99热软件| 日韩一区二区精品视频| 亚洲欧洲日本一区二区三区| 久久国产加勒比精品无码| 午夜精品理论片| 亚洲一区尤物| 亚洲一区二区三区中文字幕| 中文精品一区二区三区| 亚洲无玛一区| 亚洲在线日韩| 亚洲欧美日韩在线观看a三区| 亚洲尤物在线| 欧美亚洲在线播放| 久久精品成人欧美大片古装| 久久精品国产精品亚洲精品| 欧美在线日韩在线| 久久精品国产亚洲a| 久久精品视频在线看| 久久国产精品久久w女人spa| 久久精品一区蜜桃臀影院| 久久国产天堂福利天堂| 亚洲第一精品影视| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久综合狠狠综合久久综合88| 久久人人九九| 欧美电影打屁股sp| 欧美日韩国产不卡在线看| 欧美性久久久| 国产婷婷色一区二区三区在线| 国内精品久久久久久久97牛牛| 在线不卡视频| 亚洲人成网站777色婷婷| 99re热这里只有精品视频| 亚洲欧美激情一区二区| 久久er精品视频| 亚洲精品乱码久久久久| 亚洲一区3d动漫同人无遮挡| 欧美一区2区视频在线观看| 久久久久www| 欧美激情精品久久久久久久变态| 欧美天天影院| 国产在线欧美| 亚洲精品网站在线播放gif| 亚洲一区二区三区影院| 久久精品一区二区三区不卡牛牛| 日韩一区二区福利| 欧美在线综合视频| 欧美黄色视屏| 国产欧美精品一区二区三区介绍| 悠悠资源网亚洲青| av成人福利| 久久精品一区二区三区不卡牛牛| 在线视频一区观看| 久久久久久久精| 欧美日韩精品在线观看| 国产午夜久久久久| 亚洲激情在线视频| 性欧美精品高清| 一区二区三区精品视频| 久久精品99国产精品| 欧美日韩的一区二区| 国产亚洲一本大道中文在线| 亚洲三级色网| 久久精品99国产精品酒店日本| 亚洲天堂视频在线观看| 久久躁狠狠躁夜夜爽| 国产精品美腿一区在线看| 亚洲激情国产精品| 久久国产日韩| 亚洲欧美成人网| 欧美极品在线视频| 国产真实乱子伦精品视频| 日韩一级免费| 欧美专区在线观看一区| 亚洲性视频网址| 欧美成人蜜桃| 国产日本亚洲高清| 亚洲视频一二| 日韩午夜av| 麻豆成人在线| 国产欧美日韩伦理| 一本久久综合| 亚洲美洲欧洲综合国产一区| 久久―日本道色综合久久| 国产精品欧美久久| 亚洲精品资源| 亚洲精品乱码| 美女爽到呻吟久久久久| 国产一区二区毛片| 亚洲综合色网站| 亚洲一区二区三区四区中文| 欧美激情精品久久久久久| 在线成人h网| 久久精品99国产精品酒店日本| 欧美一区二区三区免费观看| 欧美亚男人的天堂| 亚洲精品久久| 亚洲免费观看高清在线观看| 免费一级欧美片在线观看| 狠狠色2019综合网| 久久国产视频网站| 久久精品国语| 国产一区二区三区四区| 欧美亚洲一级| 欧美主播一区二区三区美女 久久精品人| 国产精品mm| 亚洲视频精选| 亚洲欧美一区二区精品久久久| 欧美视频一二三区| 夜夜嗨av一区二区三区| 这里只有精品丝袜| 欧美日韩在线视频一区| 一区二区成人精品| 亚洲专区一区| 国产精品拍天天在线| 亚洲免费视频一区二区| 欧美一区二区三区免费观看视频| 国产精品在线看| 亚洲自拍16p| 久久精品国产欧美激情| 国产日韩视频| 欧美自拍丝袜亚洲| 久久亚洲高清| 亚洲国产精品国自产拍av秋霞| 亚洲国产精品99久久久久久久久| 久久资源av| 在线观看不卡av| 99xxxx成人网| 国产精品高潮呻吟久久| 亚洲男人的天堂在线| 亚洲欧美日韩另类| 国产亚洲欧美在线| 亚洲电影成人| 欧美激情视频一区二区三区不卡| 亚洲破处大片| 亚洲影视中文字幕| 国产欧美亚洲日本| 久久成人精品电影| 毛片基地黄久久久久久天堂| 亚洲日本乱码在线观看| 亚洲一区国产| 国产一区二区成人久久免费影院| 亚洲国产一区二区三区青草影视| 欧美激情亚洲另类| 亚洲自啪免费| 麻豆精品精华液| 日韩一二三在线视频播| 欧美亚洲一区二区三区| 国内精品久久久久久影视8| 亚洲精品女av网站| 国产精品进线69影院| 欧美一区网站| 欧美精品一区二区在线播放| 亚洲一区成人| 毛片基地黄久久久久久天堂| 99在线视频精品| 久久精品1区| 亚洲精品视频在线| 久久国产夜色精品鲁鲁99| 亚洲国产精品久久久久久女王| 亚洲欧美日韩精品| 1024亚洲| 亚洲欧美日本视频在线观看| 国内一区二区在线视频观看| 日韩视频中文字幕| 国产欧美一区二区三区视频| 亚洲精品乱码久久久久| 国产九九视频一区二区三区| 亚洲精品黄网在线观看| 国产噜噜噜噜噜久久久久久久久| 亚洲精品黄色| 国产欧美精品久久| 夜夜嗨av一区二区三区网站四季av | 欧美日韩另类国产亚洲欧美一级| 亚洲欧美日韩在线高清直播| 欧美激情亚洲综合一区| 午夜精品美女久久久久av福利| 欧美激情欧美激情在线五月| 香蕉久久夜色精品| 欧美日韩免费网站| 亚洲成人在线视频网站| 国产精品美女在线| 日韩一级视频免费观看在线| 国产伦精品一区二区三区在线观看| 亚洲精品护士| 国产一区二区福利| 亚洲字幕一区二区| 亚洲激情视频在线播放| 久久久久女教师免费一区| 亚洲一区二区三| 欧美日韩亚洲一区三区| 亚洲精品1234| 国产综合自拍| 欧美一区日韩一区| 一区二区三区欧美亚洲| 欧美国产激情|