这是访问控制数据库的糟糕设计吗?

Is that a bad design for access control database?

我是 PHP 和 codeigniter 中的一个简单系统,需要一种简单但更好的方法来管理用户及其对系统的访问。因此,经过一番搜索后,我发现了有关访问控制的有趣主题,但我仍然怀疑这是否是一个好方法。

角色和用户权限表是因为某些用户应该具有任何角色未定义的不同访问权限。 user_permission 总是优先于 role_permission。例如,用户具有有权访问用户排除的角色,但管理员创建了 user_perm 拒绝用户排除,因此该特定用户将无法删除用户。

如有任何帮助,我们将不胜感激。

    创建 TABLE 用户
    (
      身份证主键,
      用户名,
      密码,
      role_id,
      first_name,
      last_name,
      ...
    );

    创建 TABLE 个角色
    (
      身份证主键,
      姓名
    );
    创建 TABLE 个操作
    (
      身份证主键,
      姓名,
    );
    创建 TABLE role_permission
    (
      身份证主键,
      action_id,
      权限布尔值
    );

    创建 TABLE user_permission
    (
      id serial NOT NULL PRIMARY KEY,
      action_id,
      权限布尔值
    );

你忘记了 table 角色 ID 与多个用户之间的关系 - id ....所以每个用户都会有一个角色,并且根据角色他会获得权限..否则你可以添加一个字段 role_id 给用户 table..