RBAC权限设计

http://blog.sina.com.cn/s/blog_65a2fe5d01012riv.html

RBAC权限设计

  (2012-03-04 19:05:22)
标签: 

rbac权限设计

 

权限设计

 

权限

 

角色

 

数据设计

 

it

 
分类: IT小知识

一、关系图RBAC权限设计

二、流程分析

     1、用户登陆,2,找到用户角色,3,通过模块表和页面权限对应表,加载模块,4,通过权限包判定当前用户所有角色是否能访问相应的权限资源。

 

三、页面设计思路

1、角色管理

增加修改删除角色。查看与分配角色的权限

角色分配权限时,资源以页面资源,页面对应的控件资,

角色分配设计思路:通过查找并添加功能模块,显示当前以有的功能模块下面所有的页面,并能分配每一个页面和控件资源的权限.关联的表有(UM_Func,UM_Page,UM_PopedomPage, UM_ControlPopedom, UM_Control)

2、用户管理

实现用户查询,恢复用户默认密码(管理员),修改用户密码和资料(当前用户),给用户分配角色(管理员使用)

3、功能模块维护

对功能模块维护(修改,添加,删除功能模块信息)

4、命名约定

      受控对象命名的约定,包括模块,页面,控件,……

5、授权规则

      默认策略,限定策略,……

四、数据库角本

CREATE TABLE UM_User

(

   UserID Varchar(20) IDENTITY NOT NULL Primary Key, --主键,外键员工表

   UserName varchar(50) NOT NULL unique,     --用户登录名,不能重复    

   UserPWD varchar(50) NOT NULL,       --用户密码

   UserSex bit NOT NULL DEFAULT 1,        --用户性别,默认是男

   UserBirthday datetime NOT NULL,        --出生日期

   UserEmail varchar(50) NOT NULL,        --电子邮件

    UserPhone varchar(20) not null         --用户电话

)

GO

 

 

--2.角色表

if exists(select name from sysobjects where name = 'UM_Role')

 drop table UM_Role

GO

 

CREATE TABLE UM_Role

(

   RoleID int IDENTITY NOT NULL Primary Key,    --主键,自增长

   RoleName varchar(20) NOT NULL unique,       --角色名称,不能重复

   Description varchar(50)                --描叙

)

GO

 

--3.用户角色关联表

if exists(select name from sysobjects where name = 'UM_UserRole')

 drop table UM_UserRole

GO

 

CREATE TABLE UM_UserRole

(

   UserRoleID int IDENTITY NOT NULL Primary Key,    --主键,自增长

   UserID int NOT NULL  foreign key(UserID) referencesUM_User(UserID),  --用户ID

   RoleID int NOT NULL  foreign key(RoleID) referencesUM_UserRole(RoleID)  --角色ID

)

GO

 

--4.权限(包)表

if exists(select name from sysobjects where name = 'UM_Popedom')

 drop table UM_Popedom

GO

 

CREATE TABLE UM_Popedom

(

   PopedomID int IDENTITY NOT NULL Primary Key,    --主键,自增长

   PopedomName varchar(20) NOT NULL unique,  --权限名称

   Description varchar(50) NOT NULL  --描叙

)

GO

 

--5.权限(包)角色关联表

if exists(select name from sysobjects where name = 'UM_PopedomRole')

 drop table UM_PopedomRole

GO

 

CREATE TABLE UM_PopedomRole

(

   PopedomRoleID int IDENTITY NOT NULL Primary Key,    --主键,自增长

   RoleID int NOT NULL foreign key(RoleID) referencesUM_UserRole(RoleID),   --角色ID

   PopedomID int NOT NULL foreign key(PopedomID) referencesUM_Popedom(PopedomID)  --权限ID

)

GO

 

--6.ACL(控件表)

if exists(select name from sysobjects where name = 'UM_Control')

 drop table UM_Control

GO

 

CREATE TABLE UM_Control

(

   ControlID int IDENTITY NOT NULL Primary Key,    --主键,自增长,控件ID

   ControlName varchar(20) NOT NULL unique,  --控件名称  

   PageUrl varchar(20) NOT NULL Primary Key foreign key(PageUrl)references UM_Page(PageUrl),     --所属的页面,外键

   ControlControlID varchar(20) NOT NULL,    --页面中控件ID

   Description varchar(50)           --描述

)

GO

 

--7.控件权限关联表

if exists(select name from sysobjects where name = 'UM_ControlPopedom')

 drop table UM_ControlPopedom

GO

 

CREATE TABLE UM_ControlPopedom

(

   ControlPopedomID int IDENTITY NOT NULL Primary Key,      --主键,自增长

   PopedomID int NOT NULL foreign key(PopedomID) referencesUM_Popedom(PopedomID),         --权限ID

   ControlID int not null foreign key(ControlIDD) referencesUM_Control(ControlID)               --控件ID

)

GO

--ACLPage

CREATE TABLE UM_Page

(

  PageUrl varchar(15) not null Primary Key, --URL 主键

  PageName int not null,  --页面名称

  FuncCode int not null Primary Key foreign key(FuncCode) referencesUM_Page(FuncCode)   --模块编码处键

 

)

--ACL(功能模块包)

CREATE TABLE UM_Func

(

   FuncCode    int   not null Primary Key, --模块编码主键

   PageUrl      Varchar(15)   not null Primary Key foreign key(PageUrl)references UM_Page(PageUrl),   --模块Url 处键

   ParentCode  int   not null,  --模块父编码

   FuncName     Varchar(50)   not null,  --模块名称

   FuncDesc     Varchar(200) not null,   --模块描述

   FuncOrder   Int   not null,  --模块排序默认0

   DelFlag      Bit  not null --删除标记默认False

)

go

 

CREATE TABLE UM_PopedomPage

(

   PopedomID int NOT NULL Primary Key foreign key(PopedomID) referencesUM_Popedom(PopedomID),--权限ID 主键外键

   PageUrl   int not null Primary Key foreign key(PageUrl) referencesUM_Page(PageUrl)--模块编码主键外键

)

go

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值