bla*_*e24 6 mysql database rbac
我正在尝试为RBAC提出数据库架构,我希望能够创建"部门"和"职位".职位将扩展部门的通用特权.我应该只创建一个"角色"表,同时持有职位和部门吗?或者我应该创建3个表:职位,部门和角色,职位和部门表具有角色表的外键?Thx提前为大家提供帮助!干杯.
Jea*_*ach 18
我在尝试自定义RBAC实现时的经验如下:
您阅读了很多RBAC文献,并认为您理解它.然后你继续尝试实现它,只是为了意识到你根本不理解它.最终,当你在项目中移动时它会有意义.
根据您的问题,您已经知道要应用RBAC的业务域.但是暂时忘掉实际的业务对象.您的RBAC实现应该是通用的,这意味着您具有由角色,用户,权限,操作等表组成的数据库模式.然后,您将拥有映射到此类表的对象(一对一关系).
一旦你有了这个RBAC实现,它就可以建模到几乎任何业务领域,比如你提到的'Deparment'.
请记住它并非完美......我已经从实际的RBAC文献中增强/修改/派生,以便添加自定义功能,增强性能等.
我有一段时间没有这方面的工作,所以我希望我在以下方面是正确的:
角色:创建实例并将其保存到其支持表中.角色将分配给用户.
权限:权限基本上是对象操作的组合.权限分配给角色.
操作:操作就是您想要的任何操作.它可以是CRUD(创建,读取,更新,删除),也可以是"打印","搜索"或人(或系统)可以对对象(或对象组)执行的任何操作.
为了获得更大的功能,您可以实施约束以应用大量的各种限制.
使用此框架,您应该能够映射:
标准?这是一个无法回答的问题,因为这样的事情不存在。RBAC 始终根据需求进行定制。
您可能想查看以下资源: