操作种类:
我们有一个表Actions是用来设置对菜单或者数据进行增删改查,预览审核等等权限的二进制值,权限判断采用二进制比较,例如一个用户对入库表的Action二进制值为110,10为预览,(110&10=010)那么他有预览的权限
用户的访问权限:
- 本系统权限分类
- 用户权限
- 菜单权限
- 数据权限
- 权限查询
- DateSet(部分字段)
字段名 | 描述 |
---|---|
Menu_Name | 菜单名 |
DataSet_Name | 资料表名称 |
DLL_Name | 窗口名称 |
DataSet_Tag | 操作权限 |
用户的权限设置
访问控制分类
- 自主访问控制
- 强制访问控制
访问控制模型
- 基于对象
- 基于任务
- 基于角色
本系统采用自主访问控制的基于角色控制模型。
- 分配权限给用户的流程图
部分字段补充说明
- 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