操作种类:

我们有一个表Actions是用来设置对菜单或者数据进行增删改查,预览审核等等权限的二进制值,权限判断采用二进制比较,例如一个用户对入库表的Action二进制值为110,10为预览,(110&10=010)那么他有预览的权限

权限设置(简易版)

用户的访问权限:

  • 本系统权限分类
    1. 用户权限
    2. 菜单权限
    3. 数据权限

  • 权限查询
Created with Raphaël 2.1.0UserUserMenuMenuRightRightDateSetDateSetFieldField登录成功,查询菜单显示可使用的菜单查询对菜单操作权限限制操作显示编辑窗口对某些字段的权限限制操作
  • DateSet(部分字段)
字段名 描述
Menu_Name 菜单名
DataSet_Name 资料表名称
DLL_Name 窗口名称
DataSet_Tag 操作权限

用户的权限设置

  • 访问控制分类

    1. 自主访问控制
    2. 强制访问控制
  • 访问控制模型

    1. 基于对象
    2. 基于任务
    3. 基于角色

本系统采用自主访问控制的基于角色控制模型。

  • 分配权限给用户的流程图
Created with Raphaël 2.1.0开始创建群组设置群组的显示操作权限设置特殊字段的操作权限创建用户,分配群组用户个人权限添加结束

部分字段补充说明

  • Fields表(可用来中英文转换)
字段名 描述
Field_Name 字段名
Field_Roles 菜单集合
Field_Type 数据类型
  • FieldValues(显示为下拉选择框的字段)
字段名 描述
Field_Name 字段名
Field_Values 列举栏内容

资料表关系图

权限设置(简易版)
補充說明:select和where不仅仅可以添加查詢條件,如果需要對這個菜單進行一些特殊的標識也可,比如的幾個菜單使用同一個編輯彈出框,既可以用where來確定你是哪一個菜單彈出的(没换输入法,见谅)

多个系统使用同一数据库

权限设置(简易版)
本系统的MainForm的名字是DOrderMainForm
在系统有这么一行代码

473 SysId:=Copy(Name,1, 1)

那么这个系统只查询在在D级别下Menu

相关文章: