mysql - 多级层次访问控制表

标签 mysql database-design acl access-control

我在实现 acl 时遇到一些问题。我已经有以下内容

表:用户
id

表:角色
id
角色

表:user_roles
id
user_id
role_id

表:权限
id
权限

表:role_permissions
id
角色_id
权限_id

表:user_permissions
id
user_id
权限_id

当用户登录时,系统会获取角色,并根据这些角色获取权限,然后将其存储在权限数组中以供以后使用。

虽然上述工作正常,但位置和商店的添加让我感到困惑。

表:位置
id
位置

表格:商店
id
商店

所以,基本上一个用户可以分配一个通用角色:
全局管理员、全局人员
也可以成为位置管理员或人员
然后也可以成为商店管理员或人员

商店位于某个地点
地点由全局办事处管理

现在,我如何将位置和商店与现有的访问控制集成?

最佳答案

您可以连接StoreUser用户以及与特定商店相关的所有权限都可以存储在这里。

StoreUserPermission 之间存在三元关系 现在,Store 和 User 具有多对多关系。在关联表 Store_User 中,您可以链接 Permission 表。这将确保每个商店都为每个用户拥有一组特定的权限

这应该解释更多:

enter image description here

关于mysql - 多级层次访问控制表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26984985/

相关文章:

mysql - postgresql vs mysql 易于扩展,以及对高度相关(大量外键)数据库的实用性

mysql - 如何在 SQL 中计算其他两个表列的值

mysql - 机器监控应用程序(mysql)

database-design - 如何引用最初在另一个表中未知的表映射

mysql - 在数据库之间移动表

mysql - 如何从主表中以字符串值检索子表数据

sql - Rails - 多个模型之间的公共(public)字段/报告数据 - STI、hstore 或拆分表?

linux - 如何将 acl 备份到文件然后将其应用到另一个文件夹?

grails - Grails 或 Play 框架的动态 ACL?

python - 谷歌日历API ACL