当前位置: 首页 > 面试题库 >

设计用户角色和权限系统的最佳做法?

谭兴学
2023-03-14
问题内容

我需要在使用PHP / MySQL构建的Web应用程序中添加用户角色和权限系统。我想要此功能:

  1. 一个root用户可以创建子root,组,规则和普通用户(所有特权)。
  2. 子根只能为其自己的组(无组)创建规则,权限和用户。
  3. 用户可以基于组根分配给他或他的组的权限来访问分配给他或他的组的内容。

我需要系统足够灵活,以便将新角色和权限分配给内容。

我有一个users表,用于存储组密钥以及其他信息。目前,我在每个内容表(即createdBy和)中使用两个字段CreatedByGroup,并将其用作某个用户是否具有权限的要点。但是它不够灵活,因为对于每个新内容,我必须遍历所有数据更新和权限更新。请讨论您的架构设计最佳实践,以帮助我。


问题答案:

满足您需求的模式称为基于角色的访问控制。

PHP中有几种不错的实现,包括Zend_Acl(很好的文档编制),phpGACL和TinyACL。大多数框架还以某种形式拥有自己的ACL实现。

即使您选择自己动手,它也将帮助您查看诸如此类的完善解决方案。



 类似资料:
  • 基本的交易是,我们有一个定制的“kickstart”为我们的项目。为此,我们正在考虑重做用户控件。我知道关于一般rbac有很多问题,但是我找不到关于层次rbac的问题? 我们的要求是: 角色可以分配给组权限 如果角色没有权限条目,则自动拒绝 用户可以被赋予覆盖权限 用户覆盖权限是授予或拒绝 如果用户被显式拒绝权限,无论哪个角色都说已授予,则重写获胜。 用户可以有多个角色 角色可以有层次 角色可以从

  • 有些企业会对向用户发送的营销内容进行严格的管理——基层的运营或营销经理拟定的活动必须经过上级管理者的审批,方可生效执行。为此,诸葛的智能触达中提供了基于用户角色的触达活动权限管理,以支撑上述的企业需求。 如果您的团队需要使用权限控制,可通过以下步骤开启使用: 开启权限控制:智能触达的权限控制默认是关闭的,需要开启后方能使用; 分配用户角色:为团队成员分别分配设定「管理员」和「运营人员」角色; 开始

  • 我有三个模型、和。这些模型与其表之间存在复杂但众所周知的关系。 表及其列: 因此,每个用户只有一个角色,每个角色都有许多权限。 我可以访问 $用户- 除了 $权限- 返回sql错误: 但为什么呢?

  • 下午好.如何在不使用不同的OAUTH2服务的情况下,为一个应用程序中的特定实体(类似于RBAC/ABAC)的特定控制器配置用户的权限和角色? 还有一个名为Project的实体。用户可能是许多项目的成员。有一些项目用户角色:PROJECT_ADMIN、PROJECT_EDITO、PROJECT_USER。每个项目角色都可以拥有自己的权限(权限),如向项目添加用户、编辑项目等。所有角色配置都存储在'P

  • 问题内容: 我的权限记录绑定到我的应用程序中的每个帐户。每个帐户可以具有一个或多个基于帐户类型的权限记录。这是示例: 上面的查询将为其中一个帐户产生这样的数据: 正如您在上方看到的,此帐户已分配了4条记录。访问类型可以是“完全”或“仅查看” 。访问级别可以是州“ S”,城市“ C”或建筑物“ B”。用户一次只能分配一个访问级别,因此,例如,不存在用户可以分配城市和州级别的情况。我的问题是,针对特定

  • 我有一个springmvc和springsecurity项目。 角色: 权限: 以及在角色和权限之间: 接下来的情况是: 我有一个控制器,我想用注释保护操作 大概是这样的: 但是注释不起作用,但是如果我把代码改成这样就可以了: 有人能给我一个提示吗?我不想用权限限制操作,我更喜欢角色限制。 提前谢谢。