精华内容
下载资源
问答
  • 后台管理用户权限数据库设计

    千次阅读 2015-03-08 20:26:33
    创建User、Role和Module三张表,User中每一行对应一个用户信息,Role每一行保存一个角色信息,包括角色id及对应的name,Module中的每一行保存一个模块信息,包括模块id及对应的name。 创建三张表的sql语句(MySql...

    来自棱镜学院-在线IT教育www.prismcollege.com

    1.     创建基本表

    创建User、Role和Module三张表,User中每一行对应一个用户信息,Role每一行保存一个角色信息,包括角色id及对应的name,Module中的每一行保存一个模块信息,包括模块id及对应的name。

    创建三张表的sql语句(MySql环境)如下:

    1)创建user表,表结构如下:

    2)创建role表,表结构如下:

    3)创建module表,表结构如下:

    CREATE TABLE `of_user` (
      `USER_ID` varchar(100) ',
      `USERNAME` varchar(255),
      `PASSWORD` varchar(255),
      `NAME` varchar(255) ,
      `ROLE_ID` varchar(100) ,
      `NUMBER` varchar(100),
      PRIMARY KEY (`USER_ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;


    CREATE TABLE `of_role` (
      `ROLE_ID` varchar(50) ,
      `ROLE_NAME` varchar(100),
      PRIMARY KEY (`ROLE_ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;



    CREATE TABLE `of_menu` (
      `MENU_ID` int(11) NOT NULL,
      `MENU_NAME` varchar(254) ,
      `MENU_URL` varchar(254) ,
      `PARENT_ID` varchar(20) ,
      `MENU_ORDER` varchar(80),
      `MENU_ICON` varchar(30),
      PRIMARY KEY (`MENU_ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    CREATE TABLE `of_user_group` (
      `id` varchar(50) ,
      `user_id` varchar(50) ,
      `group_id` varchar(50) ,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    2.     插入初始数据

    1)定义模块,假设有以下模块a.查询报表  b.账号管理 c.信息发布 d.注册用户列表 e.招聘信息列表几个模块,将各模块插入module表中。

    插入后module内容如下:

    2)定义角色,初始定义以下角色a.超级管理员 b.管理员 c.信息发布者 d.求职者等角色,插入后role内容如下:

    3)定义用户,初始用户如下,liubei,zhugeliang,zhangfei,lvbu

    插入后user内容如下

     

    3.     创建关联表

    1)创建user和role的关联表user_role,一个user对应一个或者多个role,一个role可以对应多个user,设liubei的角色为administrator,zhugeliang为admin和distributor,zhangfei为distributor,lvbu为jobseeker。用户zhugeliang和role之间是一对多关系,角色distributor和user之间是一对多关系。

    创建后的user_role表结构如下:

    内容如下,保存了用户和角色之间的映射关系:

    2)创建role和module之间的关联映射表role_module,administrator可以查看journal_sheet模块,admin可以查看除journal_sheet的所有模块:info_distribute,account_manage,user_list,job_list,distributor可以查看info_distribute模块,jobseeker可以查看job_list模块。

    创建后的role_module表结构如下:

    内容如下,保存了role和module之间的映射关系

     CREATE TABLE `of_user_role` (
      `user_id` int(50),
      `role_id` int(50) ,
      PRIMARY KEY (`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=urf-8;


    CREATE TABLE `of_role_menu` (
      `role_id` int(50) ,
      `menu_id` int(50) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    至此,通过数据库完成了用户权限的设计。

    更多学习 欢迎加QQ群交流:3686148499368614849368614849368614849

    展开全文
  • 数据库设计-用户权限

    2017-06-12 23:37:16
    写在路上什么时候会涉及到用户权限? 一般情况下,不论任何系统都涉及到登陆,那么...用户权限解决问题关于用户权限问题参考了很多csdn博客,这里将参考部分列出,让对我见解不同之处有地方查找。 用户权限数据库设计

    写在路上

    什么时候会涉及到用户权限?
    一般情况下,不论任何系统都涉及到登陆,那么又有区分用户登陆和管理员登陆,此时涉及到普通用户和管理员权限不用,可以访问不同页面,那么权限表就因此而出。

    用户权限


    解决问题

    关于用户权限问题参考了很多csdn博客,这里将参考部分列出,让对我见解不同之处有地方查找。
    用户权限数据库设计

    展开全文
  • 用户、角色、权限数据库设计

    万次阅读 2016-03-24 17:06:37
    权限管理,主要是人员和权限之间的关系,但是如果让人员直接和权限打交道,那么权限的赋值、权限的撤销以及权限的变动会非常的麻烦,这样引入了,角色,给角色赋权限,然后给用户分配角色。 这个设计主要涉及6张表...

    权限管理

    权限管理,主要是人员和权限之间的关系,但是如果让人员直接和权限打交道,那么权限的赋值、权限的撤销以及权限的变动会非常的麻烦,这样引入了,角色,给角色赋权限,然后给用户分配角色。

    这个设计主要涉及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]
    展开全文
  • java用户角色权限数据库设计

    千次阅读 2015-11-29 19:41:30
    为了实现需求,数据库设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库设计。 我们先来分析一下数据库结构: 首先,action表(以下简称为“权限表”),...

    借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。

    我们先来分析一下数据库结构:

    首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图:

     

    这三个表之间的关系是多对多的,一个权限可能同时属于多个管理组,一个管理组中也可能同时包含多个权限。同样的道理,一个人员可能同时属于多个管理组,而一个管理组中也可能同时包含多个人员。如下图:

     

    java用户角色权限数据库设计

    由于这三张表之间存在着多对多的关系,那么它们之间的交互,最好使用另外两张表来完成。而这两张表起着映射的作用,分别是“actiongroup”表(以下简称“权限映射表”)和“mastergroup”表(以下简称“人员映射表”),前者映射了权限表与管理组表之间的交互。后者映射了人员表与管理组表之间的交互。如下图:

    另外,还需要一张表来控制系统运行时左侧菜单中的权限分栏,也就是“权限分栏表”,如下图:

    根据上面的分析,我们进行数据库结构设计,如下图:

     

    java用户角色权限数据库设计

    为了能够进行良好的分析,我们将数据库结构图拆分开来,三张实体表的作用已经很清晰,现在我们来看一下两张映射表的作用。

    一 权限映射表如下图:

    首先,我们来了解一下权限映射表与管理组表以及权限表之间的字段关联。

    看图中的红圈,先看gorupid字段相关联,这种关联方式在实际数据库中的表现如下图:

    如图中所示,管理组表中“超级管理员”的groupid为1,那么权限映射表中groupid为1的权限也就是“超级管理员”所拥有的权限。

    使用groupid字段关联,是为了查到一个管理组能够执行的权限有哪些。但这些权限的详细信息却是action字段关联所查询到的。

    action字段相关联在数据库中的表现如下图:

    通过这种关联,才查询到权限映射表之中那些权限的详细信息。综合起来,我们就知道了一个管理组可以执行的权限有哪些,以及这些权限的详细信息是什么。

    或许你会问,为什么不使用actionid字段相关联呢?因为:

    权限表中的id字段在经过多次的数据库操作之后可能会发生更改。

    权限映射表中仅仅记录着一个管理组可以执行的权限。

    一旦权限表中的id更改,那么权限映射表中的记录��就更改了。

    一个管理组可以执行的权限势必将出错,这是非常不希望的。

    考虑到上面的情况,所以应该使用action字段相关联,因为:

    在权限表中,id可能发生变化,而action字段却是在任何情况下也不可能发生变化的。

    权限映射表中记录的action字段也就不会变。

    一个管理组可以执行的权限就不会出错了。

    二 人员映射表如下图:

    我们来了解一下人员映射表与管理组表以及人员表之间的字段关联,如下图:

     

    java用户角色权限数据库设计

    看图中的红圈部分,先看groupid字段关联,这种关联方式在数据库中的表现如下图:

    如图,“超级管理员”组的groupid为1,我们再看人员映射表,admin属于超级管理员组,而administrator属于超级管理员组,同时也属于管理员组。

    使用这种关联方式,是为了查到一个管理组中的人员有谁。和上面一样,人员的详细信息是靠id字段(人员映射表中是masterid字段)关联查询到的。

    id字段(人员映射表中是masterid字段)关联表现在数据库中的形式如下图:

    一个人员可能同时属于多个“管理组”,如图中,administrator就同时属于两个“管理组”。所以,在人员映射表中关于administrator的记录就会是两条。

    这种关联方式才查询到管理组中人员的详细信息有哪些。综合起来,才可以知道一个管理组中的人员有谁,以及这个人员的详细信息。

    再结合上面谈到的权限表和权限映射表,就实现了需求中的“组”操作,如下图:

     

    java用户角色权限数据库设计

    其实,管理组表中仅仅记录着组的基本信息,如名称,组id等等。至于一个组中人员的详细信息,以及该组能够执行的权限的详细信息,都记录在人员表和权限表中。两张映射表才真正记录着一个组有哪些人员,能够执行哪些权限。通过两张映射表的衔接,三张实体表之间的交互才得以实现,从而完成了需求中提到的“组”操作。

    我们再来看一下权限分栏表与权限表之间的交互。这两张表之间的字段关联如下图:

    两张表使用了actioncolumnid字段相关联,这种关联方式在数据库中的表现如下图:

     

    java用户角色权限数据库设计

    如图所示,通过这种关联方式,我们可以非常清晰的看到权限表中的权限属于哪个分栏。

    现在,数据库结构已经很清晰了,分配权限的功能以及“组”操作都已经实现。下面我们再来分析一下需求中提到的关于权限管理系统的重用性问题。

    为什么使用这种数据库设计方式搭建起来的系统可以重用呢?

    三张实体表中记录着系统中的三个决定性元素。“权限”,“组”和“人”。而这三种元素可以任意添加,彼此之间不受影响。无论是那种类型的业务系统,这三个决定性元素是不会变的,也就意味着结构上不会变,而变的仅仅是数据。

    两张映射表中记录着三个元素之间的关系。但这些关系完全是人为创建的,需要变化的时候,只是对数据库中的记录进行操作,无需改动结构。

    权限分栏表中记录着系统使用时显示的分栏。无论是要添加分栏,修改分栏还是减少分栏,也只不过是操作记录而已。

    综上所述,这样设计数据库,系统是完全可以重用的,并且经受得住“变更”考验的。

    总结:

    此套系统的重点在于,三张实体表牢牢地抓住了系统的核心成分,而两张映射表完美地映射出三张实体表之间的交互。其难点在于,理解映射表的工作,它记录着关系,并且实现了“组”操作的概念。而系统总体的设计是本着可以在不同的MIS系统中“重用”来满足不同系统的功能权限设置。

    附录:

    权限管理系统数据表的字段设计

    下面我们来看看权限管理系统的数据库表设计,共分为六张表,如下图:

    action表:

    action表中记录着系统中所有的动作,以及动作相关描述。

    actioncolumn表:

    actioncolumn表中记录着动作的分栏,系统运行时,左侧菜单栏提供了几块不同的功能,每一块就是一个分栏,每添加一个分栏,该表中的记录就会增加一条,相对应的,左侧菜单栏中也会新增机一个栏。

    actiongroup表:

    actiongroup表记录着动作所在的组。

    groupmanager表:

    groupmanager表记录着管理组的相关信息,每添加一个管理组,这里的记录就会增加一条。

    mastergroup表:

    mastergroup表记录着管理员所在的管理组,由于一名管理员可能同同时属于多个组,所以该表中关于某一名管理员的记录可能有多条。

    master表:

     

    java用户角色权限数据库设计

    master表记录着所有管理员的信息,每添加一个管理员,该表就会增加一条记录。


    展开全文
  • 用户权限设计(一)-数据库设计

    千次阅读 2017-04-13 20:13:11
    权限设计-数据库设计
  • RBAC用户权限管理数据库设计

    万次阅读 多人点赞 2014-07-25 02:11:54
    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中...
  • 用户权限数据库设计

    万次阅读 2014-09-03 07:10:56
    由于当时项目进度不允许,导致最终系统权限模块草草了事,每个模块都是由读权限字符串来控制用户ACL,当用户无法访问时,提示权限不够。这么做对用户是很不负责任的,既然让用户看到了操作的方式和界面,为什么又...
  • 业务系统中用户权限数据库表格的设计 (2012-06-02 15:12:40) 转载▼ 标签: 杂谈 分类:数据库分析 实现业务系统中的用户权限管理--设计篇  B/S系统中的权限比C/S中的更显的重要,C...
  • java 用户、角色、权限数据库设计

    千次阅读 2016-06-26 10:08:15
    权限管理,主要是人员和权限之间的关系,但是如果让人员直接和权限打交道,那么权限的赋值、权限的撤销以及权限的变动会非常的麻烦,这样引入了,角色,给角色赋权限,然后给用户分配角色。 这个设计主要涉及6...
  • 关于用户权限数据库设计

    千次阅读 2014-07-08 13:44:10
    由于当时项目进度不允许,导致最终系统权限模块草草了事,每个模块都是由读权限字符串来控制用户ACL,当用户无法访问时,提示权限不够。这么做对用户是很不负责任的,既然让用户看到了操作的方式和界面,为什么又
  • 数据库管理员用户角色组权限设计

    千次阅读 2017-03-15 22:47:16
    用户角色设计,权限设计,角色组,数据库设计用户角色权限表设计
  • 用户权限管理模块的数据库设计

    万次阅读 多人点赞 2016-10-10 12:43:19
    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中...
  • 来源:http://www.cnblogs.com/ssslinppp/ 需求分析—场景假设需要为公司设计一个人员管理系统,并为各级领导及全体员工分配系统登录账号。有如下几个要求:1. 权限等级不同:公司领导登录后可查看所有员工...
  • 用户权限管理系统数据库设计UML

    千次阅读 2019-05-30 16:02:26
    建表语句: https://pan.baidu.com/s/10rswkItk6cKq4ben361AJg 密码 :gdld
  • 给定用户一个职位,当用户登录的时候通过Session存储该职位所具有的操作权限。当用户执行操作时,逻辑层通过遍历判断用户是否具有这个操作的权限,若为空则显示警告信息。 第一种:每行存储一个操作权限  优点...
  • 权限设计初级如下 1.设计角色 (包含id,名称,描述,后台用户数量,创建时间,是否禁用,种类) 2.权限表(包含id,父级权限,权限值,图标,权限类型,前端资源路径,启用状态,创建时间,排序) 3.用户角色与...
  • 权限管理数据库设计

    千次阅读 2011-05-06 15:16:00
    权限管理数据库设计 在开发过程当中,权限管理是不可或缺的一个模块,用户在系统中可使用的模块和操作都需要权限管理来控制。最近正好在做权限管理这个模块,所以就对于权限管理的数据库设计做个小结,本文纯属个人...
  • 数据库 权限设计 角色 用户

    千次阅读 2016-12-19 19:48:12
    通过不断的优化改进 这个权限系统 可以适应越来越大的项目一、用户权限系统的核心是用户,指登录到系统的用户。用户表 是权限系统唯一一个与业务系统关联的表大学做项目的时候,我们的权限就是一个用户表就搞定了。...
  • 用户权限管理数据库表结构设计

    千次阅读 2017-07-27 15:21:55
    实现业务系统中的用户权限管理--设计篇  B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台...
  • 数据库设计用户权限

    千次阅读 2020-10-25 21:19:24
    1、管理员给用户分配权限权限数据写到数据库中。 2、认证服务在进行用户认证时从数据库读取用户权限数据(动态数据) user:用户表,存储了系统用户信息,用户类型包括:学生、老师、管理员等 role:角色表,...
  • 权限数据库设计

    千次阅读 2017-06-27 22:27:10
    设计思想 设计实例 权限表permission 英文描述 类型 长度 是否主键 备注 id int 11 Y 主键 name string 255 N 权限名 column_id i
  • 我们将学习到DWS数据库权限管理的相关知识并进一步学会如何进行权限管理。
  •  用户-用户组-角色-权限 数据权限控制 概述  权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。  权限管理几乎出现在任何系统里面,只要有用户和...
  • 权限管理模块数据库设计

    千次阅读 2019-06-05 19:56:57
    今天面试谈到一个权限管理,总结下权限管理模块的数据库部分设计 我们比较常见的就是基于角色的访问控制,用户通过角色与权限进行关联。简单地说,一个用户拥有多个角色,一个角色拥有多个权限。这样,就构造成...
  • spring整合shiro权限管理与数据库设计

    万次阅读 多人点赞 2017-01-19 11:05:56
    之前的文章中我们完成了基础框架的搭建,现在基本上所有的后台系统都逃不过权限管理这一块...首先要先设计好我们的数据库,先来看一张比较粗糙的数据库设计图: 具体的数据库设计代码,请查看:https://git.oschina.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 200,767
精华内容 80,306
关键字:

用户权限数据库设计