Dynamics AX2012 标准权限控制工作原理
2015-08-21 16:02
375 查看
AX 2012的权限,根据其设计思路,是可以对任何表字段,窗体控件,以及运行在服务器端的类中的方法(方法头上标记有SysEntryPointAttribute(false)的方法) 进行权限控制。
可以看到,权限被划分为了:Code Permission, Privileges, Duties, Roles, Process Cycles, Policies.
他们的关系大致如下:
红色框里是用MenuItem来控制窗体的可见性、可编辑性等属性。
绿色框里是针对某个具体字段,table,方法中的个别字段进行控制。
首先应该根据红色框的思路配置,对个别角色需要对表字段或者窗体控件要单独控制的,再Permissions中增加特许权限。
Policies是做数据行过滤用。
Process Cycles是duty的集合,而duty下面包含Privileges,这个是方便新建角色的时候可以根据流程周期及职责快速为新角色分配权限。
熟悉数据库的开发人员,通过数据库表/ 视图可以更好理解他们的关系:
SecurityUserRole: 保存了“系统用户”与“角色”之间的关系
SecurityRole: 角色表
SecurityRoleTaskGrant: 保存了“角色”与权限的关系。
SecurityTask: 权限表,所谓的Task包含了Privileges, Duties, Process Cycles 三种情况, 分别对应了枚举值SecurityTaskType的0,1,2
SecuritySubTask: 保存了Task之间的树形结构。Process Cycles包含Duties包含Privileges。
另外UserInfo保存了用户信息;SysModelElementLabel保存了界面上的字段多语言描述
用以上表做连接查询就可以抽出所有用户所对应的全部权限了。很容易吧?
可以看到,权限被划分为了:Code Permission, Privileges, Duties, Roles, Process Cycles, Policies.
他们的关系大致如下:
红色框里是用MenuItem来控制窗体的可见性、可编辑性等属性。
绿色框里是针对某个具体字段,table,方法中的个别字段进行控制。
首先应该根据红色框的思路配置,对个别角色需要对表字段或者窗体控件要单独控制的,再Permissions中增加特许权限。
Policies是做数据行过滤用。
Process Cycles是duty的集合,而duty下面包含Privileges,这个是方便新建角色的时候可以根据流程周期及职责快速为新角色分配权限。
熟悉数据库的开发人员,通过数据库表/ 视图可以更好理解他们的关系:
SecurityUserRole: 保存了“系统用户”与“角色”之间的关系
SecurityRole: 角色表
SecurityRoleTaskGrant: 保存了“角色”与权限的关系。
SecurityTask: 权限表,所谓的Task包含了Privileges, Duties, Process Cycles 三种情况, 分别对应了枚举值SecurityTaskType的0,1,2
SecuritySubTask: 保存了Task之间的树形结构。Process Cycles包含Duties包含Privileges。
另外UserInfo保存了用户信息;SysModelElementLabel保存了界面上的字段多语言描述
用以上表做连接查询就可以抽出所有用户所对应的全部权限了。很容易吧?
相关文章推荐
- 快速排序问题
- lwip—mem_init和mem_malloc详解[转载]
- 二分答案 POJ3273
- Importing a Microsoft Excel Source Definition
- Android 点击两次返回退出应用
- 寒冰王座
- mac系统使用技巧链接汇总
- 文章标题
- GDI+画电子印章
- 剑指off-判断5张牌是否是顺子
- WPF 自定义控件依赖属性怎么实时变化?
- 利用mod_wsgi部署Django应用
- C#获取网络图片显示到picturebox
- Linux 查看文件和文件夹大小
- 电赛总结(四)——波形发生芯片总结之AD9834
- php-fpm 启动参数及重要配置详解
- c#用户控件的生命周期
- 莫比乌斯函数
- android 组件DatePicker实例
- UVA---10608-Friends(并查集)