zoukankan      html  css  js  c++  java
  • 混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限

    http://fightplane.iteye.com/blog/1278464

    1. 概念说明

       A 系统级权限
    从角色的角度出发,不特定于任何实际的资源的权限。比如“用户是否可以修改标题”这个权限,不针对于任何特定的标题。权限赋予给某个特定的角色。采用RBAC模型实现

       B 对象级权限从对象实例的角度出发。比如针对于某个特定的标题,编辑在这个标题上的权限。采用ACL模型实现。

       那么判断用户是否可以修改某条的标题的判断顺序如下:
       1) 用户所属的角色是否拥有“修改标题”的权限
       2) 用户或者用户组是否在某条标题的的ACL列表当中

    2. RBAC权限部分的表结构说明

    1)系统权限(Permission)

    系统权限列表

    名称

    定义

    说明

    id

    bigint

    主键,系统权限id

    name

    varchar

    名称

    2) 角色(Role)

    角色表

    名称

    定义

    说明

    id

    bigint

    主键,角色id

    name

    varchar

    名称

    3) 授权(authorities)

    给某个角色授予多项系统级权限

    名称

    定义

    说明

    id

    bigint

    主键,id

    roleid

    bigint

    角色id

    permissionid

    bigint

    权限id

    4) 用户组成员(memeberships)

    用户组以及用户组成员

    名称

    定义

    说明

    id

    bigint

    主键,用户id

    groupid

    bigint

    用户组id

    userid

    bigint 用户id
    roleid

    bigint

    角色id


    3. RBAC权限部分的关系说明

      用户和角色:
    用户和角色是多对多的关系。但是在授予某个用户某个角色的时候,是以用户组为单位的。比如用户A在用户组1中可能是 “管理员”的角色,但是在用户组2中就可能是“普通用户”的角色。这种划分在业务系统中比较通用。当然,具体到一个用户,使用哪个用户组的角色来做判断, 是由业务来决定的。

      角色和系统级权限:是一个一对多的关系。通过授权来完成。当然在授权之前,需要把需要使用的系统及权限注射到数据库的permission表。

  • 相关阅读:
    hive数据倾斜处理
    hbase基本命令
    hdfs基本操作命令
    hive常用函数
    sql面试题
    tcpdump 的正确食用方法
    kotlin 学习感受
    搭建docker hadoop环境
    安全模型分析核心
    personal evolution
  • 原文地址:https://www.cnblogs.com/seasonzone/p/4140724.html
Copyright © 2011-2022 走看看