RBAC权限问题!

mextb1860 2007-06-16 05:19:36
角色表 用户表 模块表 功能表(即 添加,删除,修改,浏览.等)
\ / \ /
\ / \ /
用户角色表 功能模块表
\ /
\ /
\ /
角色具体权限()

各表部分字段注明

角色表(角色ID,角色名)
用户表(用户ID,用户名)
模块表(模块ID,模块名)
功能表(功能ID,功能名)

用户角色表(角色ID,用户ID)
功能模块表(模块ID,功能ID)

角色具体权限(角色ID,模块ID,功能ID)

最终查询权限是在 角色具体权限表中查询.角色所对应的具体权限.
不知道这样设计是否合理.大家是否有更好的设计方案可以发出来.
...全文
441 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huhu315 2007-07-04
  • 打赏
  • 举报
回复
mextb1860 2007-06-16
  • 打赏
  • 举报
回复
我现在有个问题.
想实现所有权限的缓存.这样.下次判断权限的时候就不需要再去数据库查询了.
可是现在问题来了
Select RoleInRescourceInTask.TaskId, RoleInRescourceInTask.ResourceId,
RoleInRescourceInTask.RoleId From RoleInRescourceInTask Where RoleInRescourceInTask.RoleId In (Select AccountInRole.RoleId from AccountInRole Where UserId=1)

查处来的结果是 3维的结构...所以通过键值对,来查找权限可想.不能实现.现在选求一个好方法
mextb1860 2007-06-16
  • 打赏
  • 举报
回复
sp1234(音乐让我糊涂)

你好.
我没看懂你要表达什么??
hanbingb 2007-06-16
  • 打赏
  • 举报
回复
这应该是你要的:

http://forums.dow88.cn/Show.aspx?ThreadID=183
  • 打赏
  • 举报
回复
仔细想:也许你会说什么都能作为角色设计。

这其实就是很学究的。

如果让用户去一个一个用户指定那些灵活的角色,用户的体验就彻底变坏了。
  • 打赏
  • 举报
回复
如果你要对功能、角色进行适配,也只能这样设计。这是比较学究的、正确的、(技术化)清楚的。

从实用的角度来说,用户也应该能够对单个用户设置某个功能权限(不论这个用户的角色如何变化),设置权限时对模块的全部功能设置(不论这个模块包括的功能如何增添)。用户会有很多种理解,例如我们要求指派:某个社团的成员、所有男人、所有再本论坛发表过置顶文章的人,部门内的正副经理职位的人等等,这些都可能更实用,但是你的“用户”概念可能显得就不实用了。

看上去差不多的网站,如果你细分析其设计,差别很大。权限是个让别人难以模仿你的很好的设计技术切入点。

把权限设计做的使实用、灵活,不要每一个软件专业毕业(硕士)生都能设计得出来。
mextb1860 2007-06-16
  • 打赏
  • 举报
回复
有没有更好的解决方案呢
vrhero 2007-06-16
  • 打赏
  • 举报
回复
一般就是这样了...

粒度的控制...是个问题...个人不喜欢做到CRUD这么细...
mextb1860 2007-06-16
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶顶

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧