相比axapta 3.0使用configuration key、security key和user group來控制許可權,ax2012的許可權控制要複雜和靈活得多。ax2012是基於角色來控制使用者許可權的,類似於axapta 3.0的使用者組,每個使用者必須被賦予乙個或多個角色,下圖是ax2012 security model的層次:
這些控制許可權的基本元素位於aot/security節點下,可直接在aot中建立和修改:
roles即使用者角色,位於許可權模型的最高層,由它控制每個使用者的許可權。role可包含duties和privileges,也可以直接新增permission。role還可以包含子role,父級角色自動包含子角色的所有許可權。在aot的一物件比如table上使用add-ins->security tools->view related security roles可以找到哪些角色可以從什麼地方訪問這個物件。
duty包含乙個或多個privileges,類似於工作崗位的概念,用它來集合某個工作崗位需要的許可權。
privileges是許可權模型的最基本控制元素,由它授予可訪問的aot元素的許可權。ax的每個功能比如form、service都是通過entry point訪問的,這些entry point包括比如menu items、web content items及service operations,在priviledge的entry points節點下可新增從進入點開啟相應功能時的許可權。在priviledge的permissions節點下包括tables、forms和server methods三個子節點,tables下可以新增表並設定對該錶的訪問許可權;forms下可新增對form裡某個control的訪問許可權;server methods下則是設定對某個service operation的可訪問許可權,比如某個服務類以sysentrypointattribute(true)特性標識的方法。可訪問許可權從noacess到delete依次公升高,server methods則只有noacess和invoke兩個選擇。
process cycle只是用來將和某種業務相關的duty組織在一起方便對duty的查詢,對許可權控制沒有實際作用。
以上這些許可權控制元素除了可以在aot中直接新增外,還可以通過system administration->setup->security->security roles和security privileges新增修改,相應的修改會反映在aot對應元素中,需要注意的是如果開啟了版本控制,那麼這些許可權控制元素則只能在aot中修改了,只有這樣才能也對這些元素做版本控制。
除了上面列出的幾個許可權控制元素外,在aot的security節點下還可以建立code permission和security policy。
code permission和用於控制某個server method的執行,比如在乙個類的某個方法被定義為server static從伺服器執行,同時新增[sysentrypointattribute(true)]特性指示要對方法使用的表做許可權檢查,從乙個menu item執行這個方法時可以使用code permission來控制。新建乙個code permission,在其server methods節點下加入前面類中定義的方法並設定其許可權;再新增乙個menu item來執行這個class的方法,menu item的linkedpermission type設定為code permission,linkedpermissionobject則設定為這個code permission物件;然後這個menu item就可以通過privilege下的entry point控制最後賦予某個角色。更詳細的步驟可見
security policy用於阻止對特定錶行的訪問,類似於select的where語句,在aos所有的資料訪問都受security policy的控制。security policy屬於extensible data security model(xds)的一部分:
security policy通過query挑選一些主表的紀錄,根據security policy的contextstring、rolename、roleproperty的設定對符合條件的角色只顯示query挑選出來的紀錄,如果在主表下還設定了關聯的其他表,這些表也只顯示與主表關聯的紀錄,這點和record-level security是不一樣的,紀錄級安全只能針對單個表設定,而且紀錄級安全也只是在client端過濾紀錄,微軟推薦使用security policy,將來的版本record-level security可能就被廢棄了。關於security policy微軟提供了乙個演練和乙份***
更多有關許可權模型的內容請見
AX AX2012 建立批處理任務
要執行批處理任務必須有一台batch server,在system administration setup server configuration下選擇一台aos伺服器,選中is batch server,這台aos伺服器就成為一台batch server的伺服器。和axapta 3.0一樣,要...
AX AX2012 啟動時執行命令
先來講講在開啟ax客戶端時,自動執行一些命令。客戶端程式ax32.exe在啟動時按先後順序呼叫以下方法 the sysstartupcmd class is instantiated here.super sysstartupcmd info.startup the sysstartupcmd cl...
清華集訓2012 模積和
給定n,m,求 sum limits sum limits m i neq j n mod i m mod j mod 19940417 的值 我們先求出 sum limits sum limits n mod i m mod j 的值,然後運用容斥原理排除i j的情況即可。ans sum limi...