RBAC权限管理系统的设计

        最近在做一个权限管理系统,导师建议做成基于RBAC的权限管理,并要求实现可移植性。经过几天查资料我初步完成了数据库的设计,需要的实体有用户,用户组,角色,权限,用户跟用户组是多对多的关系,用户组可以根据部门,职位或工作性质划分。用户的权限是通过角色实现分配权限,用户和权限之间的关系时多对多关系,但是考虑到一个用户可能只是多出来一,两项权限,如果设计成只能通过角色获得权限会出现角色记录太多,冗余等现象,所以可以为用户直接分配权限,这样用户和权限之间也要有个多对多的关系表。角色和权限之间是多对多关系也要映射一个关系表。至于权限我是这样理解的,权限是定义在某种资源上的某种功能操作,单独的资源如果不联系功能操作则构不成权限,比如菜单是一种资源,对菜单资源可以有两种功能一种是能打开一种是不能,把资源和功能操作联系起来就够成一项权限,再比如数据库表可以有增删改查的操作。

 

        根据上述理解,数据库表我设计的是:用户表,角色表,权限表,资源表,功能操作表,用户组表,用户角色关联表,角色权限关联表,用户权限关联表,用户组角色关联表。其中用户组表和角色表都是可继承的。

 

        我把我的想法跟导师讲过之后,但是给我的意见是资源包括菜单,文件,页面,链接,按钮和数据库表,在这其中出数据库表以外其他的设计权限可以使可见和不可见,但是数据库表的权限就不是那么容易控制,比如说数据表是谁创建的,谁有修改,查看权限。在实际应用中有的应用系统要求同部门可以查看和修改数据表,有的要求只能查看但不能修改。还有是对数据库的读取深度也要很好的控制。做到现在我对权限管理这部门还没有很好的设计思路,请高人指点,还有如何把系统设计成组件实现可移植性完全没有想法,希望大神们指点一二。在此先谢谢大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值