数据库中存储的用户权限

3
我正在开发一个带有用户权限的Webapp。用户权限应存储在数据库中,现在我正在思考如何实现。
我考虑使用类似于“普通”应用程序中的标志的可能性。
0 - NoRights 
1 - User
2 - Support 
4 - Finance 
8 - Admin

实际权限将由一个或多个添加的数字组成。拥有支持权限的用户将具有用户权限3。
在数据库建模中存储用户权限的最佳实践是什么?
我正在使用Microsoft SQL Server 2008R2,但我想这个问题有一个与数据库无关的答案。
编辑:
以下是我找到的一些资源以及回答和评论者的帮助。 设计用户角色和权限系统的最佳实践?

https://security.stackexchange.com/questions/63518/mac-vs-dac-vs-rbac


2
请检查以下内容是否有帮助 - https://dev59.com/XnRC5IYBdhLWcg3wVvYt - MusicLovingIndianGirl
1
@MusicLovingIndianGirl 是的,这基本上涵盖了它。我想知道为什么我没有找到这个问题 :/ ,非常感谢。 - Bongo
不客气@Bongo,很高兴能帮到你。 :) - MusicLovingIndianGirl
这并不是与你的SQL问题真正相关的内容,但既然你正在使用SQL Server,你是否正在创建.NET Web应用程序?如果是这样,你是否已经研究过ASP.net身份验证,它将潜在地为你完成大部分身份管理工作,而不是自己编写代码? - Jamie Pollard
@JamiePollard 那不是真正的问题,但我会研究一下然后做出决定。 - Bongo
1个回答

3
这是多对多关系,意思是一个用户可以有多个角色,一个角色也可以被多个用户拥有。
例如,user1 可以拥有 roles 1 和 4,而 role 1 可以被 user1 和 user2 持有。
通常使用桥接表进行建模,例如:
User(userId, name) Role(roleId, description)
UserRole(userId, roleId)
更多详情请查看链接:https://en.m.wikipedia.org/wiki/Many-to-many_(data_model)。希望能帮到您。

我本以为我可以这样实现,但我想要百分之百确定,谢谢 :) - Bongo
不用担心,很高兴能够帮到你。 - Dariusz Bielak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接