首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设计用户、角色和权限模式?

如何设计用户、角色和权限模式?
EN

Stack Overflow用户
提问于 2012-02-17 12:07:32
回答 3查看 7.8K关注 0票数 2

这在web应用程序开发中是很常见的事情。我已经做过很多次了。

但是我被困在了我目前的项目中,为这个设计模式。

问题是,我的应用程序一开始会有三种类型的用户,例如SuperAdmin,管理员和普通用户。

我计划将这些用户类型作为角色,如ROLE_SUPERADMIN、ROLE_ADMIN和ROLE_USER。

系统可以有多个角色。事实上,SuperAdmin和Admins会创建角色并将这些角色分配给用户。

问题是,

超级管理员将拥有p1、p2和p3的权限。超级管理员可以创建其他超级管理员。超级管理员可以创建管理员。超级管理员不会在系统中添加用户。

管理员可以拥有p5、p6和p7权限。管理员不能创建其他管理员。管理员可以创建其他用户。管理员也可以创建角色,比如报表查看者。

具有p1,p2和p3权限的超级管理员应该能够创建具有p5,p6和p7权限的管理员。我还不是很明白。

从逻辑上讲,当超级管理员本身没有权限p5、p6和p7时,他们如何创建具有这些权限的管理员?

请帮我找出合适的设计。

下面是我到目前为止的设计。

用户

UserID RoleID

角色

RoleID RoleName

权限

PermissionID PermissionName

ROLE_PERMISSION RoleID PermissionID

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-17 14:20:33

这是一个加载的问题,设置成员、角色等不是一件容易的事情。我建议你看看已经写好的库,看看它们是否适合你的需要。你应该从谷歌开始搜索,简称为“访问控制列表”(acl)。

票数 3
EN

Stack Overflow用户

发布于 2012-02-17 14:49:00

一旦设计了这样的数据库;

我安装了一些论坛、门户和CMS脚本,并分析了它们是如何处理这种情况的,然后提取了DB模式并将其作为参考。

也许这能帮上忙

票数 2
EN

Stack Overflow用户

发布于 2013-07-01 02:12:54

您应该研究授权框架和标准,例如XACML - XACML允许您基于多个属性定义授权,这样您就不会陷入角色爆炸。因此,您可以创建规则,而不是创建角色manager_in_tx_with_gold_status,例如:

具有role=manager和location=TX的用户可以对资源执行action=view ...

也有一些供应商的解决方案和开源的解决方案。请查看Wikipedia页面和该标准的主页以获取更多信息:

我也有一个关于XACML的Youtube频道:

  • http://www.youtube.com/user/axiomaticsab?feature=watch
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9322753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档