軟件測試中Oracle Form二次開發實戰總結 第十二章 Function&Form Security

發表于:2010-12-21來源:作者:點擊數: 標簽:軟件測試oracleOracleORACLE缺陷管理;缺陷評估
軟件測試中 Oracle Form二次 開發 實戰總結 第十二章 FunctionForm Security oracle是殷墟(Yin Xu)出土的甲骨文(oracle bone inscriptions)的英文翻譯的第一個單詞,在英語里是“神諭”的意思。Oracle是世界領先的信息管理軟件開發商,因其復雜的關系 數

軟件測試中Oracle Form二次開發實戰總結 第十二章 Function&Form Security

oracle是殷墟(Yin Xu)出土的甲骨文(oracle bone inscriptions)的英文翻譯的第一個單詞,在英語里是“神諭”的意思。Oracle是世界領先的信息管理軟件開發商,因其復雜的關系數據庫產品而聞名。Oracle數據庫產品為財富排行榜上的前1000家公司所采用,許多大型網站也選用了Oracle系統。

關于Form的安全機制,我覺得可以從以下幾個方面去分析:

1是否有權限打開這個Form;

2打開Form后,在操作層面上權限有限制(如有的用戶僅能查詢,有些用戶可以更新等);

3對于Form中不同的部件,用戶的權限不一(如用戶A可以點擊審批的按鈕,用戶B不行)。


對于情況1,EBS采用我們非常熟悉的Basic Function Security,這是一種基于responsibility、menu和function(功能)的管理機制,不再贅述。


情況2時,實現的方法有多種:

(1)    定義FUNCTION時,設置QUERY_ONLY參數;

(2)    用變量記錄登錄用戶的信息,并依此動態的設置Block和Item的屬性,需要注意的是:Item的inset_allowed,update_allowed屬性只能從界面上控制不能添加或修改,并不能控制代碼進行的添加或修改;而Block的inset_allowed,update_allowed屬性從真正意義上對代碼行為進行限制,用代碼操作上述屬性為否的Block,系統會提示出錯;

(3)    使用Form.個性化設置;

(4)    使用User Profile。


針對情況3,實現的方法有就更多:

(1)    類似情況2中,可根據Form. Parameter的不同值開啟或禁用Form的某些功能;

(2)    使用Form.個性化設置;

(3)    使用User Profile;

(4)   集成工作流控制;

(5)    Advanced Function Security將考慮更加詳細的安全機制,用戶是否有權使用某個form中的某個subfunction,是否有權看見form的某個部件,是否有權打開新的窗體等等。對于這種安全控制策略,我的理解是這樣的:首先在系統里定義一個subfunction,然后把它掛到某個responsibility的menu下,然后在form里判斷登錄的用戶具有subfunction的訪問權限,激活或禁用該Form的功能。


下面是關于Advanced Function Security的示例代碼:

在form的pre-form. trigger中調用FND_FUNCTION.TEST函數驗證登錄用戶的權限:

IF (FND_FUNCTION.TEST('DEMVC_DEMVCEOR_PRINT_ORDER')) THEN

        app_special.instantiate('SPECIAL1','產品組合查詢');

        app_special.enable('SPECIAL1',PROPERTY_ON);

        SET_ITEM_PROPERTY('CONTROL.LINE_SEARCH',ENABLED,PROPERTY_TRUE);

END IF;

系統會檢測登錄用戶是否具有對subfunction- DEMVC_DEMVCEOR_PRINT_ORDER的訪問權限,驗證通過的話則激活一個SPECIAL菜單項和一個按鈕項。
 

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97