壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2839|回复: 8

[基础架构] Oracle EBS R12多组织访问架构 MOAC

  [复制链接]
发表于 2011/10/16 04:49:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
Oracle EBS R12多组织访问架构
关于R12的新特性Multi-Org Access Control(MOAC).Oracle宣传的好处主要有:
1.enable users to access to secured data in one or more Operating Units from a single responsibility
2.End-Users can access/transact data within several operating units based on Security Profile attached to a responsibility.
3.Profile 'MO:Security Profile' will ensure access to multiple operating units from single responsibility
具 体为什么会改成这样的原因可以从R12的宣传语看出:"The Global Business Release" "R12 Enables You To Think Globally,Work Globally,Manage Systems Globally "
从技术角度的一些拾零记录
1.在R12之前的版本中,组织控制是通过View来实现,比如说AP_INVOICES是定义在AP_INVOICES_ALL上面的View,而View一般都是通过在ORG_ID加条件来限制数据访问.
  从R12开始,这样的View被取消了,取而代之的是同义词(synonyms),比如说AP_INVOICES就是AP_INVOICES_ALL的同义词(synonyms).
  在R12里可以通过下面的SQL语句来查询有这样关系的表
  ---
  select *
  from  dba_synonyms syn
  where syn.synonym_name || '_ALL' = syn.table_name
  ---
2.R12中的组织访问限制是如何实现的呢?
  是通过数据库安全方面的新特性virtual private database (VPD) policy来实现的,具体就是给_ALL表的同义词(比如说AP_INVOICES),添加对应的Policy.
  这样在在查询的时候,数据库会根据Policy的来生成对应的条件(where)语句,来限制我们对数据的访问.
  通过select * from dba_policies where policy_name = 'ORG_SEC'我们可以查询到那些表添加了Policy,以及是通过那个具体的Function来生成要添加的where条件
  我们通过查询可以发现,比较具体的一个例子
  Policy_name: ORG_SEC
  Policy_group: SYS_DEFAULT
  Package: MO_GLOBAL
  Function: ORG_SECURITY
  通过查看MO_GLOBAL.MO_GLOBAL,我们可以看到具体的生成限制语句的逻辑.其中Multiple OU Access是通过GLOBAL TEMPORARY TABLE MO_GLOB_ORG_ACCESS_TMP来实现的.
  可以参看Note462383.1来看具体的每种情况会生成什么样的Where条件(a WHERE clause).  
3.可以通过表FND_MO_PRODUCT_INIT中的STATUS来判断具体的某个Application是否支持MOAC.
4.通过表FND_MO_SP_PREFERENCES的User_ID, Resp_ID, Security_Profile_ID可以查看缺省的组织(Default Org_ID).相关联的Profile是MO: Default OU
5.MOAC定义的步骤
  1.Define Operating Units(Optional)
  2.Define Security Profile Enter the Operating Units for which you want access
  3.Run concurrent program "Security List Maintenance Program"
  4.Assign the security profile to MO: Security Profile profile option for your responsibility or user
  5.Assign MO: Default Operating Unit(Optional)
  6.Assign MO: Operating Unit(Mandatory for only Single Org or if MO: Security Profile is not defined)
6.MOAC在应用中初始化的基本流程
  1.MO_GLOBAL.init
  2.Set_Org_Access -- MO_GLOB_ORG_ACCESS_TMP
  3.Check FND_MO_PRODUCT_INIT
  4.If MO: Security Profile Else MO: Operating Unit
  5.Set Policy Context "A", "S", "M" and org_id
  注:这里的Policy Context的含义如下
     Restrict the data to eliminate only seed data rows is the access mode is All
     Restrict the data to a single operating unit if the access mode is Single
     Restrict the data to multiple operating units if the access mode is Multiple
     Restrict the data to not return any rows if the access mode is None
Reference:
Doc ID:462383.1 SQL Queries and Multi-Org Architecture in Release 12


该贴已经同步到 纵横四海的微博
发表于 2011/10/17 10:25:51 | 显示全部楼层
太強太詳細,謝謝.
发表于 2011/10/17 20:24:36 | 显示全部楼层
呵呵长进了,虽然还没搞明白
发表于 2011/12/2 10:49:15 | 显示全部楼层
很不错,收了
发表于 2011/12/5 18:07:13 | 显示全部楼层
楼主,你写的太好了,很清楚很详细,谢谢分享。
发表于 2011/12/10 00:27:47 | 显示全部楼层
{:soso_e147:}
发表于 2012/9/11 14:22:20 | 显示全部楼层
谢谢, 有用啊……
发表于 2012/11/12 11:25:57 | 显示全部楼层
这个太棒了~      
发表于 2013/3/25 20:08:37 | 显示全部楼层
又见识了……总算闹明白点儿了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 01:27 , Processed in 0.016417 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表