数据库

当前位置:首页 > 数据库 >

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数据库解决方法

下一篇:MySQL 增删改查语句

扫一扫,更多精彩内容推送

PHP技术分享

分享PHP技术,前端技术,数据库,SEO优化,服务器,网络安全等知识,是php程序员工作学习的好帮手!

Copyright © 2013-2015.PHP技术分享 www.php520.cn  版权所有  网站地图    PHP学习交流群

免责声明:网站内容收集于互联网,本网站不承担任何由于内容的合法性及健康性所引起的争议和法律责任。

欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。 沪ICP备15014499号-2