日期:2014-05-16 浏览次数:20506 次
数据库权限设计
用户需求
用有用户/角色可以动态分配
所有系统菜单的权限
所有权限基于角色来进行划分
用户可拥有多个解色
系统菜单可以动态修改
uml建表,导出sql语句
/*==============================================================*/
/* DBMS name: MySQL 5.0 */
/* Created on: 2012-11-7 19:20:19 */
/*==============================================================*/
drop table if exists t_menu_privilege;
drop table if exists t_privilege;
drop table if exists t_role;
drop table if exists t_sys_menu;
drop table if exists t_user;
drop table if exists t_user_role;
/*==============================================================*/
/* Table: t_menu_privilege */
/*==============================================================*/
create table t_menu_privilege
(
pkid numeric not null,
roleid varchar(16),
menuid numeric(16),
userid varchar(16),
privliegeid char(3),
primary key (pkid)
);
/*==============================================================*/
/* Table: t_privilege */
/*==============================================================*/
create table t_privilege
(
privliegeid char(3) not null,
privilegetype varchar(8),
primary key (privliegeid)
);
/*==============================================================*/
/* Table: t_role */
/*==============================================================*/
create table t_role
(
roleid varchar(16) not null,
roledescr varchar(32),
primary key (roleid)
);
/*==============================================================*/
/* Table: t_sys_menu */
/*==============================================================*/
create table t_sys_menu
(
menuid numeric(16) not null,
menudescr varchar(32),
menuurl varchar(255),
menupid varchar(16),
primary key (menuid)
);
/*==============================================================*/
/* Table: t_user */
/*==============================================================*/
create table t_user
(
userid varchar(16) not null,
password char(8),
username varchar(12),
primary key (userid)
);
/*==============================================================*/
/* Table: t_user_role */
/*==============================================================*/
create table t_user_role
(
userid varchar(16) not null,
roleid varchar(16) not null,
primary key (userid, roleid)
);
alter table t_menu_privilege add constraint FK_fk_menu_to_priv foreign key
(menuid)
references t_sys_menu (menuid) on delete restrict on update
restrict;
alter table t_menu_privilege add constraint FK_fk_privilege_typ_to_priv
foreign key (privliegeid)
references t_privilege (privliegeid) on delete restrict on update
restrict;
alter table t_menu_privilege add constraint FK_fk_role_to_priv foreign key
(userid, roleid)
references t_user_role (userid, roleid) on delete restrict on update
restrict;
alter table t_user_role add constraint FK_fk_role_id foreign key (roleid)
references t_role (roleid) on delete restrict on update restrict;
alter table t_user_role add constraint FK_fk_user_id foreign key (userid)
references t_user (userid) on delete restrict on update restrict;
添加表数据
/*插入数据*/
INSERT INTO Privilege_sys.t_user (userid,PASSWORD,username) VALUES
(1,