我正在开发一个具有用户权限的Webapp。用户权限应存储在数据库中,我现在对如何使用感到困惑。
我想到了使用#"普通"等标志的可能性。应用
0 - NoRights
1 - User
2 - Support
4 - Finance
8 - Admin
然后,实际权利将由一个或多个添加的数字组成。 具有支持权限的用户将使用户 3 。
数据库moddeling中存储用户权限的最佳做法是什么?
我正在使用Microsoft SQL Server 2008R2,但我想这个问题有一个数据库无关的答案
修改
这里有一些资源我在路上找到了,并得到了回答和评论的人的帮助。
Best Practice for Designing User Roles and Permission System?
https://security.stackexchange.com/questions/63518/mac-vs-dac-vs-rbac
答案 0 :(得分:3)
这是多对多的关系。这意味着一个用户可以拥有多个角色,一个角色可以附加到多个用户。
即user1可以拥有角色1和4,而角色1可以由user1和user2保留。
这通常使用桥表建模,即“
用户(userId,名称) 角色(roleId,description)
UserRole(userId,roleId)
https://en.m.wikipedia.org/wiki/Many-to-many_(data_model)
希望这有帮助