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

权限管理

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

这个设计主要涉及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]
时间: 2024-10-25 06:55:16

用户、角色、权限数据库设计的相关文章

用户角色权限-数据库设计案例(转载)

来源:http://www.cnblogs.com/a7345678/archive/2008/09/25/1298838.html 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多

java用户角色权限设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的"非法用户"将会将他

设计OA系统的用户-角色-权限分配

转载:http://www.cnblogs.com/jsping/archive/2013/01/23/2872972.html 设计OA系统的用户-角色-权限分配 一,前言  本文主要讲述在OA系统设计时用户——角色——权限的数据库设计,以便实现权限分配. 二,初步分析 用户通过UI登录系统时,把用户的用户名.密码传递给后台判断用户表中是否存在可用的用户信息,如果存在那么允许页面的跳转,并设置一些Session信息,当页面跳转时根据用户的Session信息获取用户的角色,进一步根据角色获取用户

java权限管理与用户角色权限设计

java权限管理与用户角色权限设计 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将

RBAC用户角色权限设计

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接将

电子商务(电销)平台中用户模块(User)数据库设计明细

以下是自己在电子商务系统设计中的订单模块的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 用户基础表(user_base)|-- 自动编号 (user_id)|-- 用户名 (user_name)|-- 手机号码|-- 电子邮件|-- 登录密码 (password)|-- 用户状态 (status) 用户开放登录帐号表|-- 自动编号|-- 用户编号|-- 腾讯QQ号码 (qq)|-- 微信号码 (wechat)|-- 淘宝帐号 (taobao)|-- Skype (skyp

RBAC用户角色权限设计方案

转自http://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统

Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是翔通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基本不用了.还有最主要的原因就是锻炼下自己的能力.好了其他就不多说了,下面来看下我对这个项目的整体概述吧: 目录: 目录我以后会在这边添加上去的 一.Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理 基本设计 项目中使用到的工具: Visual Studio 2013,

扩展RBAC用户角色权限设计方案

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接将

[转]扩展RBAC用户角色权限设计方案

原文地址:http://www.iteye.com/topic/930648 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用 户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版