`
a7683
  • 浏览: 4598 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类

求助各位了解RBAC的朋友。

阅读更多
我希望能实现一个简单的基于rbac1的java组件(含单继承,但不含权限包含互斥),对于rbac的模型已经基本熟悉了,希望各位有这方面经验的老鸟们,能提供些相关实现方面的资料。
以下是我的数据库建模。
DROP DATABASE RoleBasedAccessControl;

CREATE DATABASE RoleBasedAccessControl;

USE RoleBasedAccessControl;
/*操作表*/
CREATE TABLE operation (
	id INT PRIMARY KEY,
	/*操作的名称*/
	name VARCHAR(20) UNIQUE NOT NULL,
	/*操作的描述*/
	description VARCHAR(200)
);
/*为操作建立索引*/
CREATE UNIQUE INDEX IDX_NAME ON operation (name);

INSERT INTO operation VALUES (0, '读', null);
INSERT INTO operation VALUES (1, '写', null);
INSERT INTO operation VALUES (2, '删', null);
INSERT INTO operation VALUES (3, '改', null);

/*资源表*/
CREATE TABLE resource (
	id INT PRIMARY KEY,
	/*资源内容*/
	name VARCHAR(100) UNIQUE NOT NULL,
	/*资源的描述*/
	description VARCHAR(200)
);
/*为资源内容建立索引*/
CREATE UNIQUE INDEX IDX_RESOURCE ON resource (name);
INSERT INTO resource VALUES (0, 'index.jsp', null);
INSERT INTO resource VALUES (1, 'addOperation.jsp', null);

/*权限表*/
CREATE TABLE authorization (
	id INT PRIMARY KEY,
	/*权限的名称*/
	name VARCHAR(50) NOT NULL,
	/*权限对应的资源*/
	resource INT NOT NULL,
	/*权限使用的操作*/
	operation INT NOT NULL
);
/*为权限名称建立索引*/
CREATE UNIQUE INDEX IDX_NAME ON authorization (name);
/*为资源、操作建立索引*/
CREATE UNIQUE INDEX IDX_RESOURCE_OPERATION ON authorization (resource, operation);
/*为权限资源建立外键*/
ALTER TABLE authorization ADD CONSTRAINT FK_RESOURCE FOREIGN KEY (resource) REFERENCES resource(id);
/*为权限操作建立外键*/
ALTER TABLE authorization ADD CONSTRAINT FK_OPERATION FOREIGN KEY (operation) REFERENCES operation(id);

INSERT INTO authorization VALUES (0, 'index_r', 0, 0);
INSERT INTO authorization VALUES (1, 'index_w', 0, 1);
INSERT INTO authorization VALUES (2, 'index_d', 0, 2);
INSERT INTO authorization VALUES (3, 'index_u', 0, 3);

/*角色表*/
CREATE TABLE role (
	id INT PRIMARY KEY,
	/*父角色*/
	parent INT NOT NULL,
	/*角色名称*/
	name VARCHAR(20) UNIQUE NOT NULL,
	/*角色描述*/
	description VARCHAR(200)
);
--ALTER TABLE role ADD CONSTRAINT FK_PARENT FOREIGN KEY (parent) REFERENCES role (parent);
INSERT INTO role VALUES (0, 0, 'anonym', null);
INSERT INTO role VALUES (1, 0, 'user', null);
INSERT INTO role VALUES (2, 1, 'admin', null);
INSERT INTO role VALUES (3, 1, 'guest', null);

/*授权表*/
CREATE TABLE permission (
	/*角色*/
	role INT NOT NULL,
	/*权限*/
	authorization INT NOT NULL
);
/*为授权表建立主键*/
ALTER TABLE permission ADD CONSTRAINT PK_PERMISSION PRIMARY KEY (role, authorization);
ALTER TABLE permission ADD CONSTRAINT FK_ROLE FOREIGN KEY (role) REFERENCES role (id);
ALTER TABLE permission ADD CONSTRAINT FK_AUTHORIZATION FOREIGN KEY (authorization) REFERENCES authorization (id);

INSERT INTO permission VALUES (0, 0);
INSERT INTO permission VALUES (1, 1);
INSERT INTO permission VALUES (2, 2);
INSERT INTO permission VALUES (2, 3);
INSERT INTO permission VALUES (3, 3);
分享到:
评论

相关推荐

    RBAC权限控制代码

    通过分析和运行这个项目,我们可以更直观地了解RBAC是如何在实际系统中运作的,以及监听器、过滤器和拦截器如何协同工作以确保权限控制的执行。 综上所述,"RBAC权限控制代码"涉及到了RBAC模型的理论基础,以及在...

    thinkphp rbac架构代码

    首先,让我们了解RBAC的基本概念。在RBAC模型中,有三个核心概念: 1. **用户(User)**:系统中的实际操作者,如管理员、员工等。 2. **角色(Role)**:角色是一组权限的集合,用户通过扮演角色来获得相应的权限。 3....

    RBAC标准基本原理

    ### RBAC标准基本原理 #### 一、引言 角色基于访问控制(Role-Based Access Control,简称RBAC)作为一种安全模型,在信息系统管理中扮演着重要角色。它通过定义不同的角色来实现对用户权限的管理,从而确保数据的...

    AIX 中的 RBAC

    通过本文的介绍,我们可以了解到AIX中的RBAC机制是一种强大而灵活的安全管理方案,它通过将权限细分为不同的授权,并将其组合成角色,进而分配给不同的用户,实现了精细化的权限控制。这种方式不仅提高了系统的安全...

    RBAC安全数据模型

    RBAC 安全数据模型

    RBAC简易设计C#

    **RBAC简易设计C#** 角色(Role)、权限(Permission)和用户(User)是RBAC(Role-Based Access Control,基于角色的访问控制...通过学习和理解这些文件,你可以构建并了解一个简单的RBAC系统在C#环境下的运作方式。

    图书馆rbac设计图书馆rbac设计图书馆rbac设计

    图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书馆rbac设计图书...

    exchange 2010 RBAC工具

    Exchange 2010角色基础访问控制(Role-Based Access Control, RBAC)是Microsoft Exchange Server 2010中引入的一项重要安全特性,它改变...因此,了解并熟练掌握RBAC工具的使用是Exchange 2010管理员必备的技能之一。

    Yii Rbac 资源包

    Yii 框架中的 Role-Based Access Control(RBAC)是一种强大的权限管理机制,它允许开发者在应用程序中精细地控制用户访问权限。...通过实践和参考文档,你可以深入了解 RBAC 的各个方面,并将其应用于你的项目中。

    html版本rbac

    首先,让我们了解RBAC的基本概念。RBAC是一种权限模型,其中权限不是直接分配给用户的,而是通过用户所属的角色来间接赋予的。这种模型有三个主要组件:用户(User)、角色(Role)和权限(Permission)。用户可以被...

    ThinkPHP(RBAC)权限管理系统_第25讲_RBAC认证配置信息

    首先,我们要了解RBAC的基本概念。在RBAC模型中,用户通过扮演不同的角色来获取相应的权限。角色是权限的集合,而权限则定义了用户可以执行的操作。这样,管理员只需要管理角色和角色的权限,用户加入或离开某个角色...

    RBAC的权限设计模型

    RBAC权限设计模型 RBAC(Role-Based Access Control,基于角色的访问控制)是一种基于角色的权限设计模型,旨在解决权限管理的复杂性和灵活性问题。RBAC模型认为权限授权实际上是Who、What、How三个问题的结合,也...

    基于django的RBAC权限控制模块

    **基于Django的RBAC权限控制模块** 在Web开发中,权限控制是不可或缺的一部分,它确保用户只能访问他们被授权的资源。Role-Based Access Control(RBAC)是一种常见的权限管理模型,通过角色来分配权限,使得系统...

    参数化的RBAC模型

    介绍参数化的RBAC模型

    aix中rbac--详细

    AIX中的RBAC(基于角色的访问控制)是一种先进的安全机制,旨在降低超级用户root的依赖,从而提高系统的整体安全性。这一概念自AIX 4.2版本开始引入,并在AIX 6中得到了显著增强,允许用户自定义授权,为特定任务...

    RBAC用户角色权限设计方案

    RBAC用户角色权限,RBAC用户角色权限设计方案

    RBAC 权限练习

    RBAC,即Role-Based Access Control(基于角色的访问控制),是一种广泛采用的权限模型,它通过定义不同角色及其对应的权限来实现用户对资源的访问控制。本练习将深入探讨RBAC模型的基本原理、设计与实现,帮助你更...

    rbac的权限模式是什么

    ### RBAC权限模式详解 #### 一、RBAC简介 **RBAC**(Role-Based Access Control)是一种基于角色的访问控制模型,在信息安全领域被广泛应用。它通过定义不同的角色,并将权限分配给这些角色来实现对用户的访问控制。...

Global site tag (gtag.js) - Google Analytics