繁体   English   中英

基于角色的访问控制的DB模式

[英]DB Schema of a Role Based Access Control

我目前正在为本地协会开发成员管理,目前我正在开发数据库架构。 我想与您分享以改进它并提供其他基于角色的访问模型(RBAC)的示例。 我很感激任何建设性的批评,特别是我在表格之间使用的关系。

链接到highres: http//i.stack.imgur.com/WG3Vz.png

继承架构: DB Schema

这个怎么运作:

我将现有客户端(实际上是关联成员)从外部应用程序映射到我的管理应用程序。 (客户表)

该关联在Division,Subdivisions等(intern_structures表)中构建。 每个客户都可以成为多个部门,细分,部门等的成员。

每个客户都可以在诸如总裁,精算师,财务主管等会员(分部......)中担任一个或多个角色,并且每个角色都有某些特权,角色的所有者可以在其部门,细分,部门等中应用其他人。 。

凭证连接到应用程序的特定操作。 凭证的所有者可以对其范围内的其他成员执行此操作。 可以有多个“独立”应用程序,但它们都共享相同的身份验证/授权系统。

应用程序在模块/子模块/动作等中构造。示例可以是“个人详细信息”模块,该模块包含一个名为“图片”的子模块,您可以在此图片上应用“查看,删除,编辑”操作。 但是你不能删除任何图片,除非你试图删除图片的人在你有足够角色的部门/部门。

内部和应用程序结构都是树,实现为邻接列表嵌套集。 邻接列表确保完整性,嵌套集允许我快速遍历树。

一个例外是您可以直接向某人提供某些凭据(client_credentials)。 如果某人需要对不属于他的divsion / section的人执行某些操作,则需要这样做。

因此,某人可以成为多个divsions / sections的成员,并在他所属的每个部门/部门中获得多个角色。 我将通过他的多个角色合并某人拥有的所有凭据。 凭证总是积极的,意味着限制性凭证是不可能的。

我将再举一个我非常喜欢的RBAC系统的例子。 在这里查看 Tony Marston的radicore框架。

我不确定它是否符合您的所有要求,但您可以比较您的工作可以提供帮助。

我似乎没有看到很多RBAC映射,例如:

Operation  = Any action, such as CRUD operations
Object     = Reference to any object instance

Permission = Mapping of 'Operation' + 'Object'

我不确定你的所有“凭证”表是什么? 凭证通常包含用于证明其身份的属性(即:用户名/密码)。 为什么你有角色凭证?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM