我有一个有趣的设计问题。我正在设计项目的安全性方面,以允许我们针对不同的成本获得不同版本的程序,并允许管理员类型的用户向其他用户授予或拒绝部分程序的访问权限。它将转到基于网络并托管在我们的服务器上。将SQL表结构为匹配或不返回结果是更好吗
我对每个'资源'或屏幕使用简单的允许或拒绝选项。
我们将拥有大量资源,用户可以设置许多不同的组来控制访问。每个用户只能属于一个组。
我有两种方法来记住这一点,并且很好奇,对于SQL服务器来说性能更好。
选项A 访问表中存在条目意味着访问是允许的。这不需要数据库中的列来存储信息。如果没有结果返回,则访问被拒绝。
我认为这将意味着一个较小的表,但会查询搜索整个表,以确定没有匹配?
选项B 控制允许/拒绝的数据库中包含一个位列。这意味着总会有结果被发现,并且会形成更大的表格。
想法?
用户表将与访问控制表分开,因此添加或删除访问权将不会影响用户的存在。此外,默认情况下,如果没有结果被发现拒绝访问,所以不应该可能意外获得访问权限。 – Tilendor 2008-10-10 00:17:11