用户,权限,角色表怎么设计
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户,权限,角色表怎么设计相关的知识,希望对你有一定的参考价值。
比如我有5个角色,管理员,会员,游客,小区管理员,业联会,管理员可以操作全部,业联会我给几个模块给他管理,小区管理员在前台可以管理自己小区的内容,请问我该怎么设计。烦死了,帮帮我。
MSSQL的库设计表:
Users 用户表 字段:userid,username,userpermission
Roles 角色表 字段:roleid,rolename,rolepermission
UserInRole 用户角色对应表 字段:userid,roleid
PermissionList 权限列表 字段:permissionid,permissionDescription,permissionGroup
权限设计:许可、禁止和未设置三种状态,Allow,Deny,Not Set
目标:
实现用户权限的定义。
首先定义角色权限,用户与角色间是多对多的关系。用户权限继承自角色权限。
情况一:用户所属的多个角色存在权限冲突时,取最小权限,即某权限角色A许可,角色B禁止,则该权限为禁止。
情况二:用户所属的角色均未对某权限进行设置时,即NotSet状态,则该权限同DENY
情况三:用户所属的角色对某权限为许可时,也可单独设置该权限为禁止。
功能:
设置用户权限:
默认情况下,用户权限继承自所属角色的权限
可单独设置某用户的权限
扩展权限
权限定义可随时增加,并可以分组。当增加权限时,默认的角色权限均为未设置状态
问题:
1、在MSSQL数据库中如何设置userpermission和rolepermission字段的字段类型?
2、如何存取用户权限?特别是当用户属于多个角色时,如何高效的设置用户权限的问题
网站专用制作,价格绝对优惠,不做网站也可以交流一下经验……
要做网站的加我122216605/541597237。
绝对让你的网站给浏览者最COOL的冲击…… 参考技术A 数据元素——功能编号 (funid);功能名称(funname);功能说明(funintro)
角色(分组)表:
数据元素——角色编号(roleid);角色名称(rolename);角色说明(roleintro)
角色功能表:
数据元素——角色编号(roleid);功能编号(funid)
用户信息表:
数据元素——用户编号(userid);用户名称(username)
用户角色表:
数据元素——用户编号(userid);角色编号(roleid)
功能(模块)表:主要存储系统用户的操作功能。
角色(分组)表:存储系统使用人员扮演的角色和职位。
角色功能表:某个角色在系统中所具有的系统操作功能。
用户信息表:存储系统使用用户的信息
用户角色表:用户在使用系统时,所扮演的角色。
每个角色对应具体的功能,至少具有基本权限;每个用户至少拥有一个角色;这样很方便管理用户的权限功能。设置一个系统管理员用户,具有所有的权限,授权用户只有系统管理员,可以对用户的进行管理和用户权限的管理,对用户的权限判断,读取用户角色表取得用户的角色数据,通过角色功能表获得用户所扮演的角色所具有的系统功能。
系统由系统管理员进入进行功能的维护(添加、修改、删除),角色的维护(添加、修改、删除),用户的维护(添加、修改、删除),角色权限的维护(添加、修改、删除)、用户角色的维护(添加、修改、删除)。 参考技术B 权限设计你可以用一个编号
ADMIN 0表示超级管理员
1表示会员
2表示游客等
然后增加一个权限表
0是管理员的权限内容
1是会员的权限内容 不就OK了
一、申请自己的网站空间和域名;
二、制作自己的网站;[可以用Dreamwever2008、PS配合,也可以在硅谷动力看视频教程];
三、把自己做好的站上传上去;
四、网站的后期维护与管理;
五、可以联系我Q275423182
用户角色权限数据库设计
权限管理
权限管理,主要是人员和权限之间的关系,但是如果让人员直接和权限打交道,那么权限的赋值、权限的撤销以及权限的变动会非常的麻烦,这样引入了,角色,给角色赋权限,然后给用户分配角色。
这个设计主要涉及6张表,
用户表(用于存储用户的所有信息)
权限表(用于存储所有的权限)
角色表(用于存储所有的角色)
用户和角色的关联表(用户和角色的关联)
角色和权限的关联表(角色和权限的关联)
菜单表(里面关联了权限,主要是现实用的)
用户表
CREATE TABLE [dbo].[Users]( [UserID] [int] IDENTITY(1,1) NOT NULL, [UserName] [nvarchar](50) primary key,--帐号 [Password] [nvarchar](50) , [UserDspName] [nvarchar](50) , [Sex] [char](1), [Birthday] [datetime], [Phone] [nvarchar](20) , [Email] [nvarchar](100), [EmployeeID] [nvarchar](20) , [Activity] [bit],--是否可用 [UserType] [char](2) , [Style] [nvarchar](50) )
权限表:
CREATE TABLE [dbo].[Permission]( [PermissionID] int identity, [Description] [nvarchar](50) --权限名称 )
角色表:
CREATE TABLE [dbo].[Roles]( [RoleID] [int] IDENTITY, [Description] [nvarchar](200)--角色名称 )
用户和角色的关联表:
CREATE TABLE [dbo].[UserRoles]( [UserID] [int] NOT NULL,--用户ID [RoleID] [int] not null ,--权限ID CONSTRAINT [PK_UserRoles] PRIMARY KEY CLUSTERED ( [UserID] ASC, [RoleID] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
角色和权限的关联表:
CREATE TABLE [dbo].[RolePermissions]( [RoleID] int NOT NULL,--角色ID [PermissionID]int NOT NULL,--权限ID CONSTRAINT [PK_RolePermissions] PRIMARY KEY CLUSTERED ( [RoleID] ASC, [PermissionID] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
菜单表:
CREATE TABLE [dbo].[menu]( [ID] [int] IDENTITY(1,1) NOT NULL, [TextCH] [nvarchar](100) NULL,--菜单的中文显示 [TextEN] [nvarchar](200) NULL,--菜单的英文名称 [ParentID] [int] NULL,--父节点 [orderID] [int] NULL,--同一个父节点下面的排序 [Url] [nvarchar](200) ,--菜单对于的权限 [PermissionID] [int] NULL,--权限ID [ImageUrl] [nvarchar](50) NULL--菜单图片链接 ) ON [PRIMARY]
以上是关于用户,权限,角色表怎么设计的主要内容,如果未能解决你的问题,请参考以下文章