日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RBAC(基于角色的权限访问控制)

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RBAC(基于角色的权限访问控制) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一節.RBAC簡介

  • 英文全稱(Role-Based Access Control)
  • 中文全稱:基于角色的權限訪問控制
  • rbac: 一種數據庫設計思想,根據設計數據庫設計方案,完成項目的權限控制.
  • 經常需要添加權限的情景
  • 4.1 不同用戶登錄后看到的菜單是不一樣的.
    4.2 不同用戶看到的頁面效果不一樣
    4.2.1 有的用戶可以看見”授權”按鈕,或有的用戶可以看見”刪除”按鈕
    4.3 不同用戶完成的功能是不一樣的.
    4.3.1 有的用戶可以執行刪除,有的可以執行新增.

  • 學習RBAC需要掌握的兩項
  • 5.1 如何設計數據庫中表
    5.2 如何根據數據庫完成項目

  • RBAC核心是角色,在數據庫設計時一定有角色表.其他的表是根據具體需求看是否添加.
  • 6.1 根據RBAC設計思想,設計出來的方案是非常靈活的.

    第二節.傳統項目數據庫設計方案

    [1] 數據庫原型及其問題.

    [2] 根據上面數據庫表設計方案帶來的問題:

    2.1 新建一個用戶時:
    2.1.1 在用戶表中添加一條數據.
    2.1.2 在關聯表中添加N條數據
    2.1.3 每次新建一個用戶需要添加:1+N(關聯幾個)條數據

    第三節.RBAC設計方案(簡單版)

  • 解決傳統項目設計方案中創建用戶時教繁瑣的操作.
  • 基于RBAC的設計方案
  • 2.1 設定好在某些情況下哪些菜單需要被關聯:
    2.1.1 例如:管理員可以看到所有菜單
    2.1.2 例如:銷售總監可以看到”銷售管理”菜單.
    2.1.3 例如:普通員工只能看見系統公告中公告查看
    2.2 現實生活中的職位對應1個或多個數據庫中的角色.

  • 在系統上線后,會在程序中添加幾種比較常見的角色.并把菜單和角色關聯.
  • 3.1 以后每次新建用戶時
    3.1 在用戶表中添加一個數據
    3.2 在用戶和角色關聯表中添加1條或n條數據.

  • 畫圖說明RBAC:
  • 第四節. RBAC 的代碼示例:

    需求:

    使用RBAC數據庫設計思想,完成不同的用戶登錄
    系統后顯示不同的菜單。

    要求:

    用戶:張三和李四
    菜單:
    用戶管理
    用戶查詢
    增加用戶
    班級管理
    班級查詢
    增加班級
    查看通告
    系統設置

  • 數據庫設計
  • 數據庫Sql語句

  • 代碼效果實現
    main.jsp主頁面的代碼示例
  • MenuController的代碼示例

    MenuServiceImpl的代碼示例

    MenuMapper的代碼示例

  • 運行截圖

  • 第五節.RBAC 詳細版本

  • 數據庫設計
  • 1.1 權限表:平時小型項目中可以省略.
    1.2 用戶組表:對用戶進行分組,每個用戶組綁定多個角色,把用戶放入到用戶組后,具有對應多個角色.
    1.3 角色組:角色組對應多個角色,用戶組和角色組
    1.4 完成訪問控制時,需要對什么類型表進行訪問控制(在簡單版中)把需要控制的內容和角色進行直接關聯.
    1.4.1 詳細版中是跟權限進行關聯.

    第六節.URL權限控制

  • 作用:訪問通過URL非法操作
  • 1.1 例如:在瀏覽器中直接通過URL訪問控制器.

  • 區分開:和頁面元素可見權限.
  • 2.1 頁面元素可見: 在頁面能不能看到某些內容
    2.2 URL權限指:在瀏覽器地址欄直接訪問

  • 實現思想(基于簡單版):
  • 3.1 添加URL表.
    3.2 URL表和角色表進行關聯.
    3.3 在filter或攔截器中添加權限驗證.

  • 代碼實現示例
  • 4.1 數據庫設計
    i. 在當前rbac案例中新增一張url權限信息表
    表名:t_url
    作用:存儲需要被管理的url地址信息。
    字段:編號,url地址
    ii. 在當前rbac案例中新增一張角色和url權限表的關聯表
    表名:r_url
    作用:表名url和角色之間的關聯關系
    字段:角色ID,url的編號
    iii. Sql語句示例:

    4.2 代碼實現
    實現思路:
    在項目增加過濾器,在過濾器中判斷當前請求的
    url地址和用戶具備的操作的URL地址是否一致。
    如果一致則放行,不一致則攔截,并提示其權限不足。
    過濾器代碼示例:

    總結

    以上是生活随笔為你收集整理的RBAC(基于角色的权限访问控制)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。