Database design 基于角色的访问控制数据库设计

Database design 基于角色的访问控制数据库设计,database-design,web,role,rbac,Database Design,Web,Role,Rbac,这个问题不是关于RBAC系统本身的数据库设计,而是当web应用程序允许其用户提交内容时,如何将该数据库与特定于应用程序的数据库结合使用 目前,我的RBAC应该可以轻松地用于一个简单的后端管理应用程序,工作人员可以在其中添加和更新记录——例如,在线商店通常没有用户提交的内容。这两个数据库可以保持分离。但是,我不确定如何将我的RBAC设计与允许用户提交内容的网站/应用程序重用。我在两个数据库中有两个用户表,它们需要添加/更新记录的权限 我是否将我的RBAC数据库合并到网站数据库并共享用户表 我要把两

这个问题不是关于RBAC系统本身的数据库设计,而是当web应用程序允许其用户提交内容时,如何将该数据库与特定于应用程序的数据库结合使用

目前,我的RBAC应该可以轻松地用于一个简单的后端管理应用程序,工作人员可以在其中添加和更新记录——例如,在线商店通常没有用户提交的内容。这两个数据库可以保持分离。但是,我不确定如何将我的RBAC设计与允许用户提交内容的网站/应用程序重用。我在两个数据库中有两个用户表,它们需要添加/更新记录的权限

  • 我是否将我的RBAC数据库合并到网站数据库并共享用户表

  • 我要把两者分开吗

  • 做点别的吗

  • 如果选择2,我应该:

    • (A) 将用户从网站数据库复制到RBAC用户表中

    • (B) 在网站数据库中创建与用户表的关系

    • (C) 在网站数据库中为网站用户创建新的RBAC系统,并为管理员用户创建单独的RBAC

    A看起来很糟糕,因为我正在复制数据,但似乎很容易实现。B似乎很难创建到两个独立用户表的关系。C也是重复的,但是我可以在不影响“管理”RBAC的情况下大量定制这个RBAC

    我基本上是想让我的RBAC系统尽可能可重用,让特定于应用程序的用户能够提交内容让我有点难以理解

    我的这个小RBAC系统主要是我学习的一种方式,所以请不要说“你应该使用框架x/y/z”。用我最近发现的一个术语来说,我有点像个车轮迷,每当我好奇的时候,我都喜欢重新发明它们

    我将在我的网站上使用MySQL和PHP,但这并不重要,因为这是我在这里询问的数据库设计


    如果我的问题不清楚,请让我知道,我会进一步解释。谢谢大家抽出时间。

    我不知道您的全部实现,我倾向于您的第一个解决方案,只使用一个用户表。然后,在线应用程序可以查询RBAC以确定用户是否拥有特权。我不清楚的是需要多少应用程序属性以及它们将存储在哪里。如果您确实有需要存储在数据库中的用户属性,那么您可以在应用程序中创建一个用户表,其中包含对RBAC的外键引用,以确定访问权限,而无需将该数据存储在两个位置。这将有多复杂取决于您可以添加和更新用户及其属性的不同位置。物理数据库结构非常依赖于您的业务规则和体系结构,但您的逻辑设计是将数据保存在一个表中。

    请查看此站点细粒度基于角色的访问控制(RBAC)系统