我正在考虑为“管理员”Web 应用程序设计权限系统的最佳方式。应用程序可能有很多用户,每个用户都可以分配一个特定的角色;其中一些用户可能被允许执行角色之外的特定任务。
我可以想到两种设计方法:一种是“权限”表,每个用户都有一行,一个布尔列,每个任务一个,为他们分配执行这些任务的权限。像这样:
用户 ID 管理用户 管理产品 管理促销 管理订单 1 真的 真的 真的 真的 2 假 真 真 真 3假假假真假
我想到的另一种方法是使用位掩码来存储这些用户权限。对于 32 位有符号整数,这会将可以管理的任务数量限制为 31 个,但实际上我们不太可能拥有超过 31 个用户可以执行的特定任务。这样,数据库模式会更简单,而且每次我们添加需要访问控制的新任务时都不必更改表结构。像这样:
用户 ID 权限(8 位掩码),将是表中的整数 1 00001111 2 00000111 3 00000001
这里的人们通常使用什么机制,为什么?
谢谢!