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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RBAC、控制权限设计、权限表设计 基于角色权限控制和基于资源权限控制的区别优劣

發布時間:2025/3/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RBAC、控制权限设计、权限表设计 基于角色权限控制和基于资源权限控制的区别优劣 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RBAC、控制權限設計、權限表設計 基于角色權限控制和基于資源權限控制的區別優劣

    • 一、介紹
    • 二、基于角色的權限設計
    • 三、基于資源的權限設計
    • 四、主體、資源、權限關系圖
    • 主體、資源、權限相關的數據模型
    • 自言自語

一、介紹

現階段我們知道的大概就是兩種權限設計

  • 一種是基于角色的權限設計
  • 另一種是基于資源的權限設計
  • 接下來我給大家講一講這兩種權限的區別,以及那種更好。

    在后面也會給出數據庫里表的設計的具體代碼。

    二、基于角色的權限設計

    RBAC基于角色的訪問控制(Role-Based Access Control)是按角色進行授權。例如:

    比如:主體的角色為總經理可以查 詢企業運營報表,查詢員工工資信息等,訪問控制流程如下:

    根據上圖中的判斷邏輯,授權代碼可表示如下:

    if(主體.hasRole("總經理角色id")){查詢工資 }

    如果上圖中查詢工資所需要的角色變化為總經理和部門經理,此時就需要修改判斷邏輯為“判斷用戶的角色是否是 總經理或部門經理”,修改代碼如下:

    if(主體.hasRole("總經理角色id") || 主體.hasRole("部門經理角色id")){查詢工資 }

    根據上邊的例子發現,當需要修改角色的權限時就需要修改授權的相關代碼,系統可擴展性差。

    我們敲代碼都知道的 公司中最忌修改源碼 因為牽一發而動全身。

    所以不是非常必要 就不要隨便修改原來的代碼。

    接下來 我們看一下基于資源的權限控制的設計是什么樣子吧。

    三、基于資源的權限設計

    RBAC基于資源的訪問控制(Resource-Based Access Control)是按資源(或權限)進行授權,比如:用戶必須 具有查詢工資權限才可以查詢員工工資信息等,訪問控制流程如下:

    根據上圖中的判斷,授權代碼可以表示為:

    if(主體.hasPermission("查詢工資權限標識")){ 查詢工資 }

    優點:系統設計時定義好查詢工資的權限標識,即使查詢工資所需要的角色變化為總經理和部門經理也不需要修改 授權代碼,系統可擴展性強。

    四、主體、資源、權限關系圖

    主體、資源、權限相關的數據模型

    主體(用戶id、賬號、密碼、…)

    主體(用戶)和角色關系(用戶id、角色id、…)

    角色(角色id、角色名稱、…)

    角色和權限關系(角色id、權限id、…)

    權限(權限id、權限標識、權限名稱、資源名稱、資源訪問地址、…)

    數據模型關系圖:

    具體表模型SQL:

    user表:

    DROP TABLE IF EXISTS `user_db`; CREATE TABLE `user_db` (`id` bigint(20) NOT NULL,`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`fullname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`mobile` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;INSERT INTO `user_db` VALUES (1, 'admin', '123456', '張三', '123');

    t_role表:

    DROP TABLE IF EXISTS `t_role`; CREATE TABLE `t_role` (`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`role_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`create_time` datetime(0) NULL DEFAULT NULL,`update_time` datetime(0) NULL DEFAULT NULL,`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `unique_role_name`(`role_name`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ---------------------------- -- Records of t_role -- ---------------------------- INSERT INTO `t_role` VALUES ('1', '管理員', NULL, NULL, NULL, '');

    t_user_role表:

    DROP TABLE IF EXISTS `t_user_role`; CREATE TABLE `t_user_role` (`user_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`role_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`create_time` datetime(0) NULL DEFAULT NULL,`creator` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`user_id`, `role_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ---------------------------- -- Records of t_user_role -- ---------------------------- INSERT INTO `t_user_role` VALUES ('1', '1', NULL, NULL);

    t_permission表:

    DROP TABLE IF EXISTS `t_permission`; CREATE TABLE `t_permission` (`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`code` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '權限標識符',`description` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',`url` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '請求地址',PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ---------------------------- -- Records of t_permission -- ---------------------------- INSERT INTO `t_permission` VALUES ('1', 'p1', '測試資源\r\n1', '/r/r1'); INSERT INTO `t_permission` VALUES ('2', 'p2', '測試資源2', '/r/r2');

    t_role_permission表:

    DROP TABLE IF EXISTS `t_role_permission`; CREATE TABLE `t_role_permission` (`role_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`permission_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`role_id`, `permission_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ---------------------------- -- Records of t_role_permission -- ---------------------------- INSERT INTO `t_role_permission` VALUES ('1', '1'); INSERT INTO `t_role_permission` VALUES ('2', '2');

    自言自語

    今天又完成一篇 ?

    看完這一篇 大家應該也會對權限的設計有了一些淺淺的理解吧。

    一起加油哦。

    總結

    以上是生活随笔為你收集整理的RBAC、控制权限设计、权限表设计 基于角色权限控制和基于资源权限控制的区别优劣的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 成人在线免费看 | 亚洲自拍色 | 日韩欧美黄色网址 | 国产高潮流白浆喷水视频 | 天海翼视频在线观看 | 日韩三级一区二区三区 | 黄色在线免费视频 | 久射网| 日韩免费精品视频 | 性欧美videos另类艳妇3d | 国产黄色免费看 | www.xxx.国产 | 电家庭影院午夜 | 国产理伦| 神马午夜91 | 久久国产精品影视 | 色久影院 | 在线观看日批视频 | 91好色先生tv| 韩日免费视频 | 精品人妻一区二区三区香蕉 | 一区二区亚洲 | 日日操天天 | 亚洲天堂视频网 | 国产伦精品视频一区二区三区 | 日本少妇ⅹxxxxx视频 | 爆操欧美| 久久成人免费 | 欧美呦呦呦 | 日本肉体xxxⅹ裸体交 | 国产成人精品av | 99久久久久久 | 成人a毛片久久免费播放 | 国产夫妻自拍小视频 | 亚欧成人精品 | 久久精品一区二区三区不卡牛牛 | 精品一区二区三区视频日产 | 亚洲成a人v欧美综合天堂麻豆 | 玖玖玖在线观看 | 中文字幕一区二区视频 | www日韩 | 嫩草免费视频 | 男女那个视频 | 91禁看片| 欧美色999 | 亚洲国产欧美日韩 | 国产xxxx性hd极品 | 无遮挡在线观看 | 国产午夜精品一区二区三区嫩草 | 一本一道波多野结衣一区二区 | 污污网址在线观看 | 免费在线观看av网址 | 国产免费视频一区二区三区 | 成人精品一区二区三区在线 | 淫欲少妇 | 国产精品丝袜视频无码一区69 | 丰满少妇一级片 | 波多野结衣亚洲一区 | 波多野42部无码喷潮在线 | av中字在线 | 自拍偷拍第一页 | 国产性70yerg老太 | 四虎影院污 | 中文字幕第80页 | 日韩国产区 | 亚州综合网 | 强行无套内谢大学生初次 | 先锋资源网av | 狠狠干夜夜操 | 一二区免费视频 | 日韩精品午夜 | 三级网站在线免费观看 | 穿越异世荒淫h啪肉np文 | 色七七在线 | 精品久久久久国产 | 国产成人精品一区二区三区免费 | www.九色 | 干欧美少妇 | 一区二区传媒有限公司 | 国产三级精品三级在线观看 | 国产艳情片 | 男人桶进美女尿囗 | 日本一本久| 欧洲一区二区 | 国产精品久久久久久人 | 免费观看黄色小视频 | 亚洲丝袜天堂 | av中文字幕一区二区 | 日产精品久久久久 | 日本成人在线免费观看 | 日韩毛片网 | 亚洲淫欲| 中文字幕另类 | 又粗又猛又爽又黄的视频 | 欧美精品一区二区成人 | 四虎影视免费观看 | 人人插人人插 | 成人国产精品免费观看 | 一级黄色电影片 |