权限管理开源项目

数据库权限设计

2018-02-02  本文已影响30人  simple波

1 设计思路

为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。

1.1 用户

用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联。

用户通常具有以下属性:

ü 编号,在系统中唯一。

ü 名称,在系统中唯一。

ü 用户口令。

ü 注释,描述用户或角色的信息。

1.2 角色

角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限,通常具有以下属性:

ü 编号,在系统中唯一。

ü 名称,在系统中唯一。

ü 注释,描述角色信息

1.3 权限

       权限指用户根据角色获得对程序某些功能的操作,例如对文件的读、写、修改和删除功能,通常具有以下属性:

ü 编号,在系统中唯一。

ü 名称,在系统中唯一。

ü 注释,描述权限信息

1.4 用户与角色的关系

一个用户(User)可以隶属于多个角色(Role),一个角色组也可拥有多个用户,用户角色就是用来描述他们之间隶属关系的对象。用户(User)通过角色(Role)关联所拥有对某种资源的权限,例如

l 用户(User):

UserID      UserName      UserPwd

1                   张三                 xxxxxx

2                   李四                 xxxxxx    

……

l 角色(Role):

RoleID           RoleName          RoleNote

       01                  系统管理员       监控系统维护管理员

       02                  监控人员          在线监控人员

       03                  调度人员          调度工作人员

       04                  一般工作人员   工作人员

       ……

l 用户角色(User_Role):

UserRoleID           UserID           RoleID           UserRoleNote

1                       1                   01                  用户“张三”被分配到角色“系统管理员”

2                        2                   02                  用户“李四”被分配到角色“监控人员”

3                        2                   03                  用户“李四”被分配到角色“调度人员”

……

       从该关系表可以看出,用户所拥有的特定资源可以通过用户角色来关联。

1.5 权限与角色的关系

一个角色(Role)可以拥有多个权限(Permission),同样一个权限可分配给多个角色。例如:

l 角色(Role):

RoleID           RoleName          RoleNote

       01                  系统管理员       监控系统维护管理员

       02                  监控人员          在线监控人员

       03                  调度人员          调度工作人员

       04                  一般工作人员   工作人员

       ……

l 权限(Permission):

PermissionID      PermissionName       PermissionNote

0001                        增加监控                 允许增加监控对象

0002                        修改监控                 允许修改监控对象

0003                        删除监控                 允许删除监控对象

0004                        察看监控信息       允许察看监控对象

……

l 角色权限(Role_Permission):

RolePermissionID   RoleID PermissionID RolePermissionNote

1                             01            0001        角色“系统管理员”具有权限“增加监控”

2                             01            0002        角色“系统管理员”具有权限“修改监控”

3                             01            0003        角色“系统管理员”具有权限“删除监控”

4                             01            0004        角色“系统管理员”具有权限“察看监控”

5                             02            0001        角色“监控人员”具有权限“增加监控”

6                             02            0004        角色“监控人员”具有权限“察看监控”

……

2.2 数据库表说明

2.2.1 用户表(Static_User)

UserID    路线编号varchar(20)

UserName    用户名称varchar(20) 

UserPwd    用户密码varchar(20) 

LastSignTime    最后登陆时间datatime 

SignState    用户登陆状态标记int 

TickeID    验证票记录编号varchar(128) 

2.2.2 角色表(Static_Role)

RoleID    角色编号varchar(20)

RoleName    角色名称varchar(20) 

RoleNote    角色信息描述varchar(20) 

2.2.3 用户-角色表(Static_User_Role)

UserRoleID    用户角色编号varchar(20)

UserID    用户编号varchar(20)

RoleID    角色编号varchar(20)

UserRoleNote    用户角色信息描述varchar(20) 

2.2.4 权限表(Static_Permission)

PermissionID    编号varchar(20)

PermissionName    权限名称varchar(20) 

PermissionNote    息信息描述varchar(20) 

2.2.5 角色-权限表(Static_Role_Permission)

RolePermissionID    角色权限编号varchar(20)

RoleID    角色编号varchar(20)

PermissionID    权限编号varchar(20)

RolePermissionNote    角色权限信息描述varchar(20) 

转自http://www.cnblogs.com/cxd4321/archive/2009/01/12/1374140.html

上一篇 下一篇

猜你喜欢

热点阅读