给定根据某些用户权限显示对象(例如电影)的应用程序。访问控制:具有附加组成员身份而不是对象属性的RBAC
一般显示或创建对象的权限实现为具有角色和权限的RBAC。
特定访问具有某些属性的对象(例如,具有“戏剧”属性的电影)的权限应使用成员资格实施。这意味着对象没有属性“戏剧”,它是组“戏剧”的成员。如果用户和对象是同一组中的成员,则用户具有访问此对象的特定权限。可以有不同的组显示,创建或删除对象,如简单的查看器组或某种编辑组。此外还有一个表格,指定哪些组类型与特定对象上的某些操作相关。例如,对象“电影”上的“显示”动作的相关组可以是“流派”和“年龄”(电影对某些观众的适合性)。
以所述方式实现它的原因是在不触摸代码的情况下具有很大的灵活性。可以在数据库中处理对组的更改。
常规数据库设计:
示例:电影 “亡魂” 是的基团的成员 “体裁:戏剧” 和 “年龄:18”。如果用户也是这些组的成员,则用户可以访问它。
这听起来像一个好方法吗?有没有类似于这种方法的现有解决方案?它是否有主要的缺点(例如太多的数据库查询 - 每天可能有几百个用户)?
请与我分享你对这个问题的看法 - 选择“戏剧”作为范例的类别并不是巧合;)我只是不知道这是死路一条,还是我正朝着正确的方向前进。我坚持了很长一段时间。
BTW刚刚意识到这个答案也可能证明是有用的:http://stackoverflow.com/questions/30701482/mysql-access-control –
thx快速回复:)我需要一些时间来深入了解您的建议。 – NedRise