深入学习RBAC系列模型——RBAC0模型的开发与学习心得

  RBAC0模型简介:

  RBAC0是RBAC系列模型中的基础模型,随后的RBAC系列模型都将按照RBAC0基础模型进行改进,所以学习RBAC模型就必须要牢牢掌握RBAC0模型的思想以及使用方法。

  RBAC0引入了角色的思想解决了用户与权限之间的分离问题。用户其实质上并没有真正的权限,只有当用户成为了某一个特定的角色的时候才会被赋予特定的权限。可以这么理解,一个普通人,在正常情况下是无法合法持有枪支的,但当这个普通人参加公务员考试,并成为一名刑警之后,他就可以合法持有枪支了。这里普通人为用户,持有枪支为权限,二者并没有直接的关系,而是通过警察这一角色来进行关联,将持有枪支合法化。换句话说,这个普通人永远不能持有枪支,而警察永远拥有持有枪支的权限。每一个用户都有可能成为警察,从而拥有持有枪支的权限。这就是RBAC0中主要解决的权限分离问题。

  我们通过为某一用户赋予角色来让用户拥有特定的权限。这里用户、角色、权限三者都可以是多个的。

 

   模型实例获取地址:https://github.com/KienShin/rbac0

  转载请注明来源与作者:)

  需要注明的是该模型其实已经包括了RBAC1的思想,RBAC0的思想是单纯只有超级管理员才可以做一系列核心操作,而该系统对角色进行了分级也就是引入了RBAC1模型的思想。所以如果严格来说,该模型是基于RBAC0之上的RBAC1模型,大家在学习的时候只需要抛开角色类和用户类中的继承判断就可以得到单纯的RBAC0模型。

  数据库模型:

  数据库表中需要有USER(用户表)、ROLE(角色表)、PERMISSION(权限表)、PERMISSION_ASSIGNMENT(简称PA)(权限与角色关联表)、USER_ASSIGNMENT(简称UA)(用户与角色关联表),一共五张基础表构成RBAC0模型。

  当我们为某一用户指定角色时我们就需要用到UA表了,管理员为用户赋予角色时将uid和rid同时提交到PA表。系统在进行用户角色判断是,则从UA表中抽取其特定uid下的rid。不同的用户可以成为相同的角色,而不同的角色同样也可以被赋予

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值