Web应用程序中多个用户的访问控制

Kom*_*ang 4 php mysql database

我正在开发一个PHP + MySQL社交网络应用程序,现在我需要为每个应用程序设置不同的访问控制(读取,创建,编辑,删除)全局(所有项目)和/或自我项目(自己创建的项目)模块到组或特定用户.

有没有人有这样的建议(表格结构等)?


好的,我在这里提供更多细节,目前我有一个tbl_module,tbl_user和tbl_user_role.每个用户和角色可以对特定模块具有不同的访问权限.

  • 更新
  • 创建
  • 删除

并由全球访问或仅自己(自己的帐户或他们自己创建的记录)分开.

和我目前的方法:我创建另一个表来保存访问细节:

  • acl_uid
  • mod_id(fk模块uid)
  • target_id(fk用户uid或角色uid)
  • acl_type(用于标识目标id引用的用户/角色)
  • acl_read
  • acl_update
  • acl_create
  • acl_delete

acl_read,acl_update,acl_create,acl_delete值范围:

  • 0否认
  • 1允许
  • 2指低优先级检查(如果用户有值2则参考角色)
  • 3自我

我相信这是解决这个问题的更有效方法,或者可能是对我目前方法的改进.

谢谢你的回复.

Ada*_*vis 5

这是一个非常广泛的问题,所以你很可能只得到非常广泛的答案.

大多数CMS系统都有一个表,列出了可以在系统上生成的内容类型.

另一个表描述了每种类型的内容是如何显示的(在首页,各个博客页面等).

另一个表为每个用户提供一个或多个"用户类型"或"组",例如admin,unregistered,moderator等.

最后一个表是各种各样的访问表 - 它显示了每个组有权执行的操作,包括它可以创建,编辑,发布等的内容类型.

我建议您花一点时间研究其他CMS软件的数据库模式,例如Slashcode,Drupal或其他数百万个CMS系统之一.

-亚当