RBAC用户权限管理数据库设计
时间:2015-06-27 阅读:次 QQ群:182913345
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般都是多对多的关系。RBAC用户权限管理数据表设计如下所示:
/* 角色表 */ CREATE TABLE IF NOT EXISTS role( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(32) UNIQUE NOT NULL, /* 名称 */ remark VARCHAR(32), /* 备注 */ system INT DEFAULT 0, /* 是否系统角色(系统角色不允许删除) */ created INT DEFAULT 0 /* 时间 */ )ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=UTF8 ; /* 用户与角色关系表 */ CREATE TABLE IF NOT EXISTS user_role( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, /* 用户ID */ role_id INT NOT NULL /* 角色ID */ )ENGINE=MyISAM DEFAULT CHARSET=UTF8; /* 节点表 */ CREATE TABLE IF NOT EXISTS node( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(32) NOT NULL, /* 名称(控制器名或动作名 ) */ title VARCHAR(32) , /* 标题 */ pid INT DEFAULT 0, /* 父ID */ path VARCHAR(32) DEFAULT '' /* 路径,如 User/add */ )ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=UTF8; /* 访问权限表 */ CREATE TABLE IF NOT EXISTS access( id INT AUTO_INCREMENT PRIMARY KEY, role_id INT NOT NULL, /* 角色ID */ node_id INT NOT NULL /* 节点ID */ )ENGINE=MyISAM DEFAULT CHARSET=UTF8; |
下一篇:MySQL 增删改查语句