RBAC的数据库建立

一、数据库,参照网上一些范例,在mysql中创建以下表

-- Create the datatable named by 'RBAC_User' to save users.
create table RBAC_User
(

User_ID int primary key auto_increment,

User_Name varchar(20) not null,

User_PassWord varchar(20) not null,

User_Lock bit not null
);

CREATE UNIQUE INDEX IDX_User ON RBAC_User(User_Name) ;

-- Create the datatable named by 'RBAC_Group' to save groups.
create table RBAC_Group
(

Group_ID int primary key auto_increment,

Group_Name varchar(20) not null,

Group_Description varchar(100)
);

CREATE UNIQUE INDEX IDX_Group ON RBAC_Group(Group_Name) ;

-- Create the datatable named by 'RBAC_Role' to save roles.
create table RBAC_Role
(

Role_ID int primary key auto_increment,

Role_Name varchar(20) not null,

Role_Description varchar(100)
);

CREATE UNIQUE INDEX IDX_Role ON RBAC_Role(Role_Name) ;

-- Create the datatable named by 'RBAC_Resource' to save Resources.
create table RBAC_Resource
(

Resource_ID int primary key auto_increment,

Resource_Name varchar(20) not null,

Resource_Description varchar(100)
);

CREATE UNIQUE INDEX IDX_Resource ON RBAC_Resource(Resource_Name) ;

-- Create the datatable named by 'RBAC_Operation' to save Operations.
create table RBAC_Operation
(

Operation_ID int primary key auto_increment,

Operation_Name varchar(10) not null,

Operation_Description varchar(100)
);

CREATE UNIQUE INDEX IDX_Operation ON RBAC_Operation (Operation_Name);

--Create the datatable named by 'RBAC_UserGroup' to save userGroup.
create table RBAC_User_Group
(

User_Group_ID int primary key auto_increment,

User_ID int not null,

Group_ID int not null,

constraint foreign key(User_ID) references RBAC_User(User_ID) ,

constraint foreign key(Group_ID) references RBAC_Group(Group_ID)
);

CREATE UNIQUE INDEX IDX_User_Group ON RBAC_User_Group ( User_ID , Group_ID);

-- Create the datatable named by 'RBAC_GroupRole' to save GroupRoles.
create table RBAC_Group_Role
(

Group_Role_ID int primary key auto_increment,

Group_ID int not null,

Role_ID int not null,

constraint foreign key(Group_ID) references RBAC_Group(Group_ID) ,

constraint foreign key(Role_ID) references RBAC_Role(Role_ID)
);

CREATE UNIQUE INDEX IDX_Group_Role ON RBAC_Group_Role( Group_ID, Role_ID);

-- Create the datatable named by RBAC_Authority to save authorities.
create table RBAC_Authority
(

Authority_ID int primary key auto_increment,

Resource_ID int not null,

Operation_ID int not null,

constraint foreign key(Resource_ID) references RBAC_Resource(Resource_ID) ,

constraint foreign key(Operation_ID) references RBAC_Operation(Operation_ID)
);

CREATE UNIQUE INDEX IDX_Authority ON RBAC_Authority (Resource_ID, Operation_ID);

-- Create the datatable named by RBAC_Permission to save permissions.
create table RBAC_Permission
(

Permission_ID int primary key auto_increment,

Role_ID int not null,

Authority_ID int not null,

constraint foreign key(Role_ID) references RBAC_Role(Role_ID) ,

constraint foreign key(Authority_ID) references RBAC_Authority(Authority_ID)
);

CREATE UNIQUE INDEX IDX_Permission ON RBAC_Permission (Role_ID, Authority_ID);


二、用myEclipse生成pojo、dao后,对hbm.xml的配置部分修改,绕过只起关联关系的表,改为把两个一对多改为一个多对多。

//RbacGroup.hbm.xml
<set name="rbacUsers" table="rbac_user_group" inverse="true" lazy="true" cascade="save-update">
<key>
<column name="Group_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacGroup" column="User_ID" />
</set>
<set name="rbacRoles" table="rbac_group_role" inverse="true" lazy="true" cascade="save-update">
<key>
<column name="Group_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacGroup" column="Role_ID" />
</set>
//RbacUser.hbm.xml
<set name="rbacGroups" table="rbac_user_group" inverse="false" lazy="true" cascade="save-update">
<key>
<column name="User_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacUser" column="Group_ID" />
</set>

//RbacRole.hbm.xml
<set name="rbacGroups" table="rbac_group_role" inverse="false" lazy="true" cascade="save-update">
<key>
<column name="Role_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacRole" column="Group_ID" />
</set>

三、pojo中集合属性的修改,和以上配置保持一致,略...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值