发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
工作时间也不长,但是总想写一些自己的收获。公司利用的技术也比较单纯,asp.net,js也不怎么需要用,唯一写的多的就是sql语句。
好了,废话不多说了,开始谈谈我在做项目中一些对系统权限的收获,不过很多都是项目中看到的,我就想自己重新做一遍。也许会有
很多的问题和考虑不全的地方,但是我还是要写出来,当做自己的一种学习罢了。
(1)用户表
权限是根据登陆者不同而不同的,用户表就比较简单了,简单的表设计如下
[user_no] [nvarchar](20) NOT NULL, //用户ID,主键 [user_name] [nvarchar](20) NULL, [user_password] [nvarchar](20) NULL,
(2)权限列表
设置所有的权限,例如新增,修改,查询
[action_id] [nvarchar](20) NULL, [action_name] [nvarchar](20) NULL
(3)功能表
系统的功能是存在数据库中的,根据权限来获取部分功能,并展示。表设计如下:
[function_id] [nvarchar](20) NOT NULL,//功能id [function_brother_id] [int] NOT NULL,//相同功能的不同页面 [function_name] [nvarchar](50) NULL, [function_url] [nvarchar](500) NULL, [function_level] [int] NULL, [function_sort] [int] NULL, [function_action] [nvarchar](100) NULL, [function_parent_id] [nvarchar](20) NULL, [function_inmenu] [bit] NULL,//是否在菜单中
为什么有[function_brother_id],一个菜单里面的一个功能可能会有多个页面。例如一个用户页面,可能在功能里面叫用户信息,但是会涉及多个页面,每个页面都需要权限。[function_inmenu]就是判断同功能里面菜单里链接是其中哪个页面(只能有一个)。
[function_action]是根据权限列表给每个功能赋给权限
(4)权限组
我们的权限是根据组来区分的。一个用户在一个组里面,那个组里面有哪几个功能,其中每个功能有哪几种权限。这就是我们的系统权限的核心了,不过比较简单。
[group_id] [nvarchar](20) NOT NULL, [group_name] [nvarchar](50) NULL,
这里面存储权限组的基本信息,一般会默认有系统管理者和一般使用者。
(5)用户权限组
设定用户在哪个群组。我们目前的系统设计的是一个用户可以有多个组,但是我觉得一个用户设定一个群组就ok了。如果一个用户没有设定在哪个组,默认为一般使用者。
[group_id] [nvarchar](20) NULL, [user_no] [nvarchar](20) NOT NULL,
(6)群组功能
设定每个群组里面有哪几个功能,每个功能有哪几种权限。
注意,功能表里面的权限与此处不同,可能一个功能有查询和删除权限,但是本群组里面的这个功能只有查询权限。
这个权限必须是在功能里面此功能所有的权限中。
[group_id] [nvarchar](20) NOT NULL, [function_id] [nvarchar](20) NOT NULL, [group_action] [nvarchar](100) NULL,
表设计到此ok,算是比较简单的。
来自: 贾朋亮博客 > 《权限管理》
0条评论
发表
请遵守用户 评论公约
一个简易实用的web权限管理模块的应用与实现
本文介绍一个简易实用的web权限管理模块的应用与实现。
功能权限和数据权限管理的实现
功能权限和数据权限管理的实现1 引言。1、读写 [CreatorUserId] VARCHAR(36) FOREIGN KEY REFERENCES Sys_User(ID) NOT NULL, --创建人ID [Creat...
用户、角色、权限数据库设计
CREATE TABLE [dbo].[menu]( [ID] [int] IDENTITY(1,1) NOT NULL, [TextCH] [nvarchar](100) NULL,--菜单的中文显示 [TextEN] [nvarchar](200) NULL,--菜单的英文名称 [ParentID] [int] NULL,--父节点 ...
Sql Server函数全解(5):系统函数
DB_ID(database_name)函数返回数据库的编号,其返回值为SMALLINT类型,如果没有指定database_name,则返回当前数据库的编号。USE 语句将m...
RBAC 基于角色的权限访问控制
在20世纪90年代期间,大量专家学者和研究单位对RBAC(Role-Based Access Control)的概念进行了深入研究,先后提出了许多类型的RBAC模型...
腾讯新专利:不加群也可以看消息
摘要显示,该方法包括:获取用户标识、群组标识以及消息只读权限列表,当确定用户标识具有消息只读权限时,使用户标识具有群组消息阅读...
PHP如何连接INFORMIX数据库
在一般的C/S结构中,如果SERVER端装的是UNIX,而数据库是INFORMIX的话,那我门如何连接数据库呢,在PHP中,我门可以在client端装一个INFORMIX的主要控件,然后在连接本地的ODBC即可访问server的INFORMI...
工作流系统功能列表系列
当主要工作流程呼叫另一支子流程时,必需要能够传送数据到子流程内;当执行工作流程时,有可能某一流程会"卡住"而无法继续往下执行,此情况通常是发生在不兼容的条件状况,而无法使流程进行...
轻笔记帮助
5 如何保存轻笔记中的笔记?5. 新建笔记,将所需笔记内容复制到新建笔记。登录网页版轻笔记(http://www.qingbiji.cn/home),在群组界面...
微信扫码,在手机上查看选中内容