AX2012基于角色的权限设计1-权限体系
一、 ERP系统的权限构成
借用金蝶K/3 ERP中的概念,ERP系统的权限管理一般分为3个部分,功能权限、数据权限和字段权限。
1. 功能权限
是指用户是否具有调用此项功能的权限,以及权限级别。例如用户是否对供应商、客户等信息具有查看、创建、更改或删除的权限。
2. 数据权限
是指用户可以处理某项功能中的哪些数据。例如在赋予了用户供应商查看权限的基础上,可以通过数据权限设定用户只能查看哪些供应商。
3. 字段权限
是指用户可以处理某类数据哪些方面的信息。例如在赋予了用户供应商查看权限的基础上,可以通过字段权限设定哪些用户可以查看供应商的联系电话,哪些用户禁止查看供应商的联系电话。
二、 AX系统的权限体系
在AX系统中,权限的设定是基于角色的,如下图所示,AX系统从MenuItem, Table, Form和ServerMethod四个方面赋予权限。
1. MenuItem(菜单项)
MenuItem用于调用一项系统功能,可以出现在AX菜单中,也可以出现在Form中,分为Display, Output, Action 三类,属于功能权限的范围。
2. Table(表)
通过对Table的设置可以实现功能权限和字段权限2方面的管理。
功能权限方面:
可以设定用户对整表的权限,常用于为需要调用临时表的报表功能赋予权限。
字段权限方面:
可以设定用户对表中字段的权限,常用于控制数量、金额字段是否可见与是否可编辑。
3. Form(窗体)
通过对Form的设置也可以实现功能权限和字段权限2方面的管理。
功能权限方面:
可以设定用户对窗体中Button的权限。(需结合Button的NeedPermission属性使用)
字段权限方面:
可以设定用户对窗体的Grid中各字段的权限,常用于控制数量、金额字段是否可见与是否可编辑。
注意:a) 本功能需结合Grid中字段的NeedPermission属性使用;b) Table的字段权限设置对全局生效,Form的字段权限设置只对当前窗体生效。
三、 覆盖权限与记录级安全性
1. 覆盖权限
是指对角色中包含的权限进行覆盖性设置,对角色中的某个对象做了覆盖权限后,其在Privilege中的权限设置将被忽略(覆盖)。
可以对控件、表/字段、服务器方法设置覆盖权限,覆盖权限后,AOT中相应角色的Permission将记录这些设置,因此,权限覆盖也可直接在AOT中完成。
2. 记录级安全性
记录级安全性用于设置“数据权限”,但是,axhelper (www.axhelper.com ) 介绍该功能将被微软逐渐停用,以后的“数据权限”使用“可扩展的数据安全策略”实现,通过Queries和Policies进行设置,详见 http://axhelper.com/?p=1408 。
One Reply to “AX2012基于角色的权限设计1-权限体系”