`
mudid
  • 浏览: 10870 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

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中集合属性的修改,和以上配置保持一致,略...
分享到:
评论

相关推荐

    通用权限的数据库的设计,PowerDesigner

    我们可以建立一个业务员角色,设置业务员角色可以做的事情,然后把五个业务员和业务员角色关联起来。这样就方便了,业务员可以做得事情有变化的时候,我只需要修改业务员角色可以做得事情就可以了。 您可能会问,...

    word源码java-rbac-security:基于角色的权限访问控制(Role-BasedAccessControl)

    本项目将对用户、角色、权限三者之间的关联状态概念交给系统管理员与数据库,对外依然具有RBAC的概念。但是在项目的权限管理中,项目只维护用户与权限的关系。 当用户登录成功后立即在数据库查询该用户所具有的角色...

    可扩展系统中基于RBAC模型的访问控制 (2009年)

    通过分析基于角色的访问控制(RBAC)模型,在Struts,Spring和Hibernate集成框架下,给出一种全方位可扩展的动态自定制信息系统中基于RBAC模型的访问控制模块的实现方法,论述模块的后台数据库设计和模块实现等关键...

    基于.NET的学生信息管理系统的设计与实现

    分析了当前高校学生信息管理工作中面临的问题,研究了RBAC中模型的建立和实现这两大热点,开发了一个基 于B/S结构的系统——山东师范大学信息科学与工程学院的高校学生信息管理系统。该系统通过ADO.NET技术对...

    浅析Yii中使用RBAC的完全指南(用户角色权限控制)

     * 以下内容适合Yii 1.0.x,其他版本可能有略微的差别。 * 根据您的评论和反馈...设置参数、建立数据库在配置数组中,增加以下内容:复制代码 代码如下:‘components‘ =&gt; array( //…… ‘authManager‘=&gt;array( 

    基于Python的轴承信息管理系统后端的设计与实现

    (2)使用Pycharm工具与MySQL数据库设计构建了系统数据库,通过建立轴承字段表拓 展轴承表的方式提升系统拓展性,然后通过使用缓存、设置索引等方式优化系统数据库。 (3)完成系统各模块业务逻辑的设计与实现,使用...

    AnyphpMvc 1.2.zip

    AnyphpMvc是轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另...

    基于ThinkPHP的中小型企业门户网站开发毕业设计.pdf

    因此,结合 ThinkPHP 框架与 MySQL 数据库的开发模式,建立一个面向中小型企业的网站 通用模板,从而促使企业网站在开发技术上更快速与高效,也解决了中小型企业在业务更新、 企业宣传、推广成本和推广设计技术上...

    clever-roles:使用CleverStack向用户添加权限和角色

    运行grunt db以重新建立数据库并为其添加种子。 手动地 将此仓库克隆到您的modules / clever-roles文件夹中。 将“聪明角色”添加到应用程序的package.json的bundledDependencies数组中。 安装模块NPM软件包。 ...

    大数据技术在银行的应用.pdf

    4 兴业银行大数据技术的具体实施 4.1 构建先进的大数据平台 兴业银行数据平台技术的五大特点: (1)安全性:采用了角色访问控制(RBAC),日记记录系统,分层 分级的安全监控策略(应用、 中间件、 网络等)。 (2)可伸缩性:...

    AnyphpMvc(轻便的PHP框架)

    轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另建模板文件...

    Destroy 0.9.2

    建立于RBAC的权限控制基础,支持Win/Linux系统环境下部署,最佳WEb服务器Nginx/Apache。Destroy 0.9.2 更新日志:2016-03-031.后台管理大幅度修改和优化 2.更完善的相册管理,前台相册功能开发 3.修复了存在一些的...

    AnyphpMvcPHP框架插件 v1.0 RC4

    2010-10-05增强开发助手,实现以下功能1可以在线创建数据库,同时默认主键为ID2可在线修改字段类型等,同时建立字段字典,指定字段的数据类型和表单类型3可根据数据表智能自动生成列表、编辑、新增表单,并根据不同...

    project-internet-shop

    该项目是根据SOLID原则开发的,并通过RBAC过滤策略进行了授权和认证。 描述项目结构的图 描述实体之间关系的UML图。 一个用户可以具有多个角色。 无作用: 登记 授权 查看产品 用户: 查看产品 在购物车中添加/删除...

    Destroy v0.9.2

    Destroy以PHP开发语言为基础的,基于ThinkPHP开发框架开发的接近于内容开发框架的php网站内容管理系统,采用...建立于RBAC的权限控制基础,支持Win/Linux系统环境下部署,最佳WEb服务器Nginx/Apache。 与过去的CMS有所

    JavaWeb后台开发框架-其他

    JavaWeb是基于 SpringBoot2+Layui2.5.6+Thymeleaf++Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置等一系列...

    千博政府网站管理系统 v2014 Build0813

    例如,您的部门拥有领导、科员等工作角色,那么利用千博政府网站管理系统您可以建立领导、科员等管理角色,并赋予他们相应的权利:领导只管理网站重要信息批示,科员只负责信息的收录等,让网站管理人员各尽其职,...

    千博政府网站管理系统 v2013 Build1025

    例如,您的部门拥有领导、科员等工作角色,那么利用千博政府网站管理系统您可以建立领导、科员等管理角色,并赋予他们相应的权利:领导只管理网站重要信息批示,科员只负责信息的收录等,让网站管理人员各尽其职,...

Global site tag (gtag.js) - Google Analytics