B/S系统权限设计:用户权限管理与数据库实现

版权申诉
5星 · 超过95%的资源 1 下载量 9 浏览量 更新于2024-06-27 收藏 328KB DOC 举报
"数据库权限设计与实现.doc" 文件主要探讨了在B/S系统中如何设计和实现用户权限管理系统,以确保只有经过授权的用户才能访问特定功能。文档提出了以下关键知识点: 1. B/S系统权限的重要性:由于B/S系统基于浏览器,权限管理尤为重要,以防止未经授权的用户通过浏览器访问敏感信息或执行不合法操作。 2. 需求陈述: - 职责区分:不同角色的用户应有不同的权限,确保业务系统安全。 - 组权限分配:为了简化管理,允许对用户群体(组)分配权限,避免逐个用户分配。 - 系统可扩展性:权限系统需可复用,能适应各种有权限需求的业务系统。 - 功能权限与资源权限:功能权限是可跨系统重用的,而资源权限通常与特定系统相关。 3. 设计方法: - NoahWeb动作编程理念:设计时关注程序流程和数据库结构,而非程序结构。 - 数据库设计:核心是三个实体表(权限表、管理组表、人员表)和两个映射表(权限映射表、人员映射表)。 - 多对多关系:权限、管理组和人员之间存在多对多关联,通过映射表实现。 4. 数据库表结构: - 权限表(action表):存储权限信息。 - 管理组表(gorupmanager表):存储管理组信息。 - 人员表(master表):存储人员信息。 - 权限映射表(actiongroup表):连接权限表和管理组表,表示权限与管理组的关联。 - 人员映射表(mastergroup表):连接人员表和管理组表,表示人员与管理组的关联。 - 权限分栏表:控制系统界面中显示的权限分栏。 5. 关联细节: - 权限映射表:通过`action`字段关联权限表,而非`actionid`,因为`action`字段不变,保证了管理组权限的稳定性。 - 人员映射表:通过`groupid`字段关联管理组表,实现人员与管理组的关联。 设计这样的权限系统,可以有效地管理和控制B/S系统中用户对各项功能的访问,实现灵活的权限分配和系统的可扩展性。通过合理的数据库设计和关联,确保了权限管理的准确性和效率。
2023-01-08 上传
理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于N对N的 关系,一般需要加入一个关联表来表示关联的两者的关系。初步估计一下,本系统至少 需要十张表,分别为:权限表、用户表、角色表、组表、用户权限关联表、用 户角色关联表、角色权限关联表、组权限关联表、组角色关联表、用户属组关联表。当 然还可能引出一些相关的表。下面让我们在PowerDesigner中画出各表吧。    各表及其关系如下:       1.    用户表 "  用户表(TUser) " "  字段名称 "  字段 "  类型 "  备注 " "  记录标识 "  tu_id "  bigint "  pk, not " " " " "null " "  所属组织 "  to_id "  bigint "  fk, not " " " " "null " "  登录帐号 "  login_name "  varchar("  not null " " " "64) " " "  用户密码 "  password "  varchar("  not null " " " "64) " " "  用户姓名 "  vsername "  varchar("  not null " " " "64) " " "  手机号 "  mobile "  varchar(" " " " "20) " " "  电子邮箱 "  email "  varchar(" " " " "64) " " "  创建时间 "  gen_time "  datetime"  not null " "  登录时间 "  login_time "  datetime" " "  上次登录时"  last_login_"  datetime" " "间 "time " " " "  登录次数 "  count "  bigint "  not null "   2.    角色表 "  角色表(TRole) " "  字段名称 "  字段 "  类型 "  备注 " "  角色ID "  tr_id "  bigint "  pk, not " " " " "null " "  父级角色I"  parent_tr"  bigint "  not null " "D "_id " " " "  角色名称 "  role_name"  varchar(6"  not null " " " "4) " " "  创建时间 "  gen_time "  datetime "  not null " "  角色描述 "  descripti"  varchar(2" " " "on "00) " "   3.    权限表 "  权限表(TRight) " "  字段名"  字段 "  类型 "  备注 " "称 " " " " "  权限ID"  tr_id "  bigint "  pk, not " " " " "null " "  父权限"  parent_tr"  bigint "  not null " " "_id " " " "  权限名"  right_nam"  varchar(6"  not null " "称 "e "4) " " "  权限描"  descripti"  varchar(2" " "述 "on "00) " "   4.    组表 "  组表(TGroup) " "  字段名"  字段 "  类型 "  备注 " "称 " " " " "  组ID "  tg_id "  bigint "  pk, not " " " " "null " "  组名称"  group_nam"  varchar(6"  not null " " "e "4) " " "  父组 "  parent_tg"  bigint "  not null " " "_id " " " "  创建时"  gen_time "  datetime "  not null " "间 " " " " "  组描述"  descripti"  varchar(2" " " "on "00) " "   5.    角色权限表 "  角色权限表(TRoleRightRelation) " "  字段名"  字段 "  类型"  备注 " "称 " " " " "  记录标"  trr_id "  bigi"  pk, not null " "识 " "nt " " "  角色 "  Role_id"  bigi"  fk, not null " " " "nt " " "  权限 "  right_i"  bigi"  fk, not null " " "d "nt " " "  权限