1

我目前正在编写一个大约 6-12 页的 Web 应用程序。在每个页面上,我希望用户能够执行以下部分(或全部)操作:查看、添加、更新和删除。

我想到的当前权限方案是在数据库中有一个整数。这个整数将对应一个二进制数(例如:26 -> 11010)。生成的二进制数充当“切换”并确定用户拥有哪些权限。什么位的定义代表什么权限存储在另一个表中。

我的问题是,如果每个页面都有 4 个选项(查看、添加、编辑、删除),那么这种确定权限的方式可能会失控。

是否有人对权限方案有任何其他想法,该方案将与此一样灵活(关于可配置性),但又不是压倒性的(关于整数限制)?

4

2 回答 2

5

如果你真的需要走这条路,也许更好的答案是在你的数据库中有一个每页/每用户的行,具有一组权限,所以你的表看起来像这样:

 page        user     create read update delete 
 =====       =====    ====== ==== ====== ======
 test.html   joe      y      y    y      n 
 test2.html  joe      n      y    y      n 

或者,通常情况下,您最好拥有角色,如作者、编辑、审阅者、管理员,并为您的角色提供细粒度的权限,并将用户置于角色中。

于 2009-11-04T12:59:36.373 回答
2

我建议你不要诉诸比特。在数据库中为每个权限类别使用单独的列,并使用整数 1 和 0 来指示是否授予该权限。这将使您免于进行位操作,并且速度也很快。唯一的缺点是更多的列,根据您的描述,这似乎不是什么大问题。

于 2009-11-04T12:55:03.027 回答