站長資訊網
        最全最豐富的資訊網站

        yii2怎么實現rbac

        yii2怎么實現rbac

        RBAC(Role-Based Access Control )基于角色的訪問控制。

        1.基本思想:在用戶和訪問權限之間引入角色的概念,將用戶和角色聯系起來,通過對角色的授權來控制用戶對系統資源的訪問,相對傳統訪問控制 引入角色極大地簡化了權限的管理。 (推薦學習:yii框架)

        1).角色:可以理解為一定數量的權限的集合,權限的載體。例如:一個論壇系統,“超級管理員”、“版主”都是角色。

        2).權限:版主可管理版內的帖子、可管理版內的用戶等,這些是權限。

        Yii2中對rbac的實現

        1.Yii2實現了通用的分層的RBAC,遵循的模型也是NIST RBAC model。

        2.在yii2中增加了rule規則的概念,rule是什么鬼呢?

        舉個栗子:對于文章系統而言,我們有管理員和普通用戶,允許管理員對文章的任何操作,但是只允許普通用戶創建文章和修改自己創建的文章,也就是說普通用戶是有修改文章的權限的,但是額加的限制條件是只能修改自己的文章,這個額加的驗證工作就是rule規則所要負責的事情。

        3.yii2的權限管理實現支持文件和db兩個載體,基于db實現方式的核心是四個表:

        1)存儲角色或權限的表:auth_item (type:1表示 角色;2表示權限)

        CREATE TABLE `auth_item` ( `name` varchar(64) NOT NULL, `type` int(11) NOT NULL, `description` text, `rule_name` varchar(64) DEFAULT NULL, `data` text, `created_at` int(11) DEFAULT NULL, `updated_at` int(11) DEFAULT NULL, PRIMARY KEY (`name`), KEY `rule_name` (`rule_name`), KEY `type` (`type`), CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8

        2) 權限和角色的上下級關聯表:auth_item_child

        (包含關系:角色 可以包含 角色、角色 可以包含 權限、權限 可以包含 權限,但 權限 不可包含 角色)

        CREATE TABLE `auth_item_child` ( `parent` varchar(64) NOT NULL, `child` varchar(64) NOT NULL, PRIMARY KEY (`parent`,`child`), KEY `child` (`child`), CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8

        3)用戶與權限(角色)的分配表:auth_assignment

        CREATE TABLE `auth_assignment` ( `item_name` varchar(64) NOT NULL, `user_id` varchar(64) NOT NULL, `created_at` int(11) DEFAULT NULL, PRIMARY KEY (`item_name`,`user_id`), CONSTRAINT `auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8

        4)規則表:auth_rule

        CREATE TABLE `auth_rule` (     `name` varchar(64) NOT NULL,     `data` text,  //存的是一個序列化的實現了yiirbacRule接口的類的一個對象實例   `created_at` int(11) DEFAULT NULL,     `updated_at` int(11) DEFAULT NULL,     PRIMARY KEY (`name`),     KEY `name` (`name`),     KEY `created_at` (`created_at`),     KEY `updated_at` (`updated_at`)   ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='權限規則表';

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲欧洲精品成人久久奇米网| 日韩专区亚洲精品欧美专区| 久久国产美女免费观看精品| 国产午夜福利精品久久2021| 影院无码人妻精品一区二区| 黑巨人与欧美精品一区| 久久免费精品视频| 精品无人码麻豆乱码1区2区| 亚洲精品尤物yw在线影院| 国产亚洲精品AA片在线观看不加载 | 亚洲精品专区| 精品视频一区二区三区| 91精品国产综合久久四虎久久无码一级| 亚洲AV无码成人精品区天堂| 日韩精品成人亚洲专区| 国产香蕉国产精品偷在线观看| 中文精品久久久久国产网址| 精品国产日产一区二区三区| 99国产精品无码| 国产精品免费看久久久| 久久亚洲中文字幕精品有坂深雪| 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 日韩精品无码一区二区三区 | 国产精品青青在线观看爽香蕉| 久久精品视频免费| 久久精品国产影库免费看| 成人国内精品久久久久影院 | 亚洲麻豆精品国偷自产在线91| 日韩蜜芽精品视频在线观看| 欧美午夜精品一区二区三区91| 人妻少妇精品系列| 亚洲av无码成人精品国产| 无码精品人妻一区二区三区AV| 日本Aⅴ大伊香蕉精品视频| 日韩福利视频精品专区| 亚洲精品国产福利一二区| 亚洲精品NV久久久久久久久久| 中文精品无码中文字幕无码专区| 亚洲国产精品无码专区影院| 无码精品A∨在线观看| 国自产偷精品不卡在线|