什么是网站部分的安全/权限的最佳设计 - 数据表明智?

时间:2009-03-03 17:57:09

标签: database-design

关于设计:

  1. 每个用户都是SOME组的一部分。 (销售,零件,棒球运动员,等等)
  2. 每个“网页”都会被一群人看到。 (获得特别许可的销售+部分+会计乔)
  3. 每个网页通常都是某个级别的网页组的一部分 - 您可能会尝试将这些网页保留在某个目录中,或者从一些前缀开始但不总是 - 即当有人加入销售时您不希望指定 - 他们可以看到SalesPage1,SalesPage2,SalesPage3,SalesPartsPage1等。

2 个答案:

答案 0 :(得分:10)

最简单的方法如下:

用户:包含您的用户,姓名和ID列表

SecurityGroups :包含安全组列表,例如“Sales”,“Marketing”。 (id,安全组名称)

页面:包含您的网页列表(ID,网页名称)

UserSecurityGroups :( userId,securityGroupId)。已分配权利的交叉参考表

PageSecurityGroups :( pageId,securityGroupId,允许)。允许访问该页面的安全组成员身份的交叉引用表。

对于每个页面加载,您将检查特定页面的PageSecurityGroups表是否包含用户具有的组访问权限。

显然,可能会有更多内容,例如将页面分配给特定用户,但您可以根据需要对应用程序进行推断。

答案 1 :(得分:3)

由于“每个网页通常是一组网页的一部分...”,最好像“每个网页总是部分一样一组网页......“ - 即使有些团体只有1名成员!

这将您的数据模型简化为:

用户--->用户组< ------->页面组< ---页面