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

Rbac 支持两种类,PhpManager(基于文件的) 和 DbManager(基于数据库的)

权限:
就是指用户是否可以执行哪些操作

角色:
就是上面说的一组操作的集合,角色还可以继承

在Yii2.0中

    • yii bac: Item 为角色或者权限的基类,其中用字段type来标识
    • yii bac: Role 为代表角色的类
    • yii bac: Permission 为代表权限的类
    • yii bac: Assignment 为代表用户角色或者权限的类
    • yii bac: Rule 为代表角色或权限能否执行的判定规则表

在数据库中存储的RBAC层次是低效率的浪费性能的,但要灵活得多

存储角色或权限的表:auth_item

用来存储角色和权限的数据,Role类和Permission类有一个共同的基类yii bac:Item,用$type字段来标识是角色还是权限。

角色权限关联表:auth_item_child

用来保存角色和权限的关系

用户角色(权限)表:auth_assignment

用户的权限包含两部分,一部分是所指定的角色代表的权限,一部分就是直接所指定的权限

规则表:auth_rule

如果要在规则表:[auth_rule]中增加一条规则就得要有对应的规则类,并实现方法abstract public function execute($item, $params)具体的逻辑来判定$item(角色或者权限)是否可执行。

原文地址:https://www.cnblogs.com/baby123/p/4871779.html