自己的权限设计,不知合不合理

kaslo 2009-07-31

作为一个学生加新手,以前没有接触过后台的管理用户权限问题,都是很暴力的直接分为超级管理员和普通管理员,然后在代码中判断管理员可用的管理频道,后来接手一个网站设计,想到使用角色的权限设计,将管理员与角色分离,设计如下,欢迎大家指正。

管理员表:

  • 管理员名
  • 管理员密码
  • 管理员角色编号

 

角色表:

  • 角色编号
  • 角色名

 

权限表:

  • 权限编号
  • 权限名称

(权限采用预先输入的办法,将系统的功能划分,输入到数据库中,比如“新增文章”,“编辑文章”等等)

 

角色权限表:

  • 角色编号
  • 权限编号

在代码中,跟据管理员的角色编号,与权限的编号或名称检查是否存在数据,没有数据就说明不存在该项目权限,有数据则表示该管理员存在该权限,可以进行此操作。

大家都来说说,欢迎拍砖

 

 

popoer 2009-08-03
应该还有个用户组,一般角色是指一组权限的集合,用户组和角色结合使用更加灵活
metadmin 2009-08-04
管理员表干嘛呢?普通用户的用户信息呢?

角色、权限2个维表有了,角色权限关系表也有了。
用户与角色关系表呢?

管理员表不会就是用户信息表吧?
jianpx 2009-08-11
可以参考这篇文章:http://www.noahweb.net/mail/2/Project.htm
jaroddang 2009-08-11
你指的管理员表,应该就是用户表吧,如果用户与角色之间是一对一的,这样做到也没什么问题,如果是一对多或者多对多,再加上一张用户与角色关系表还是比较好的

自己做的系统,权限这块,够用就成,过度设计很没必要,真到了需要更细分的时候再做不迟,或是购买一套圈主的metadmin,呵呵
royzhou1985 2009-09-26
一般来说  权限系统中需要有
人员user 角色role 资源resource 功能function 这几个概念


资源即我们访问的地址 连接到相应的模块  如学生管理模块,对应的url地址是student.do等等
功能是针对某个模块而言的 比如对学生管理模块有 增加/修改/删除/查询等等权限
资源与功能之间需要通过资源功能表(resource_function)关联起来

角色拥有的权限与资源功能表(resource_function)关联起来,即授权之后可能是:
角色A拥有B资源的 增加save/修改update/删除delete 权限等

人员通过赋予角色获取相应的权限

然后我们在应用中通过一个过滤器 对用户每次访问的地址进行权限判断
登录之后可以将用户所有的权限放在Session域中 然后对url进行判断

比如 student.do?method=save
则需要判断用户是否对学生管理模块具有保存的权限

其他权限也做类似的判断

这个就是我平时中使用的权限管理模块
有什么不好的地方大家可以提出来讨论!!!!!!!!
gxg2008540 2010-02-05
最进也在研究这个权限管理系统,感觉好多关系还是理不清楚,来到这里清楚不少啊。呵呵。
1000 2010-02-25
你还没有了解RBAC权限模型,看看基于此模型建立的权限。
laozhan1028 2011-11-17
本人也是新手,感觉表建的多了也不好,够用就行
yuhui0531 2012-04-20
initContainer
Global site tag (gtag.js) - Google Analytics