Oracle EBS R12多组织访问架构

多组织架构实现了经营单位(OU)的数据安全性,在底层数据表中有一列ORG_ID来记录数据所属的经营单一,所有多OU的基表都是以”_ALL”结尾,对应经营单位屏蔽信息的视图创建在

APPS数据库模式下。 多OU的视图通过职责上面设置的MO: Operating Unit预制文件的值来限制值的读取。预制文件的值在用户登录系统职责后通过FND来初始化,CLIENT_INFO这个功能函数来

取得ORG_ID的值,这个值在一个连接会话中有效。这样一来一个职责只能访问一个经营单位的数据。

  从Oracle Applications R12开始,使用了多组织访问控制(Multi-Org Access Control)功能,使用户在一个职责下存取一个或者多个经营单位(Operation Units)的数据。增加了用户操作的方便性和灵活性。MOAC是通过安全配置文件(Security Profile)来实现的,通过在HR模块中定义安全配置文件来包括层次结构的组织架构,然后使用MO: Security Profile 预制文件将安全

性配置文件和职责关联起来,这样就实现了用户能够访问MO: Security Profile预制文件中所对应安全配置文件中的经营单位信息。而后台则是通过数据库中的VPD(Virtual Private

Database)功能来替换CLIENT_INFO实现多OU存取数据的控制。

MOAC对用户系统操作的影响 :

所有与多OU相关的业务窗口中,都添加了一个OU选择的值列表

MOAC对客户化开发的影响:

VPD(Virtual Private Database)替换了CLIENT_INFO,因此以前的安全性访问初始化的方式已经不再适用,如R12前使用如下的代码:

begin

dbms_application_info.set_client_info(‘&org_id’);

end;

/

select * from po_headers

/ 但是在R12种已经不适用,在12版的工作流数据库包开发中使用MO_GLOBAL来实现 而在表单和报表的客户化开发中,都需要通过安全配置文件来初始化安全访问。 为了和系统标准功能保持

一致以及程序的扩展性,需要在多OU相关的界面设计中添加OU选择的值列表。

关于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

  Profile 'MO:Security Profile'可以确保从单一的责任访问多个经营单位

具 体为什么会改成这样的原因可以从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)

  中文:MOAC定义的步骤(对上面英文的翻译)

  1.定义组织架构及OU信息

  2.定义安全配置文件

  3.运行”Security List Maintenance Program”请求

  4.为用户职责分配”MO: Security Profile”预制文件的值为安全配置文件的定义

  5.为用户职责设置一个默认的操作OU,分配”MO: Default Operating Unit”预制文件的值

  6.如果还是希望一个职责对应一个单独的OU,设置职责层的”MO: Operating Unit”预制文件

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

Oracle EBS R12多组织(多OU)访问架构的更多相关文章

  1. Oracle EBS R12多组织访问架构

    关于R12的新特性Multi-Org Access Control(MOAC).Oracle宣传的好处主要有:1.enable users to access to secured data in o ...

  2. Oracle EBS R12 (12.1.3) Installation Linux(64 bit)

    Oracle EBS R12 (12.1.3) Installation Linux(64 bit) Contents Objective. 3 1 Download & Unzip. 3 D ...

  3. Oracle Ebs R12 SLA与GL关系变化

    http://www.cnblogs.com/bruce_zhao/p/3809886.html Oracle Ebs R12 SLA与GL关系变化 SLA概念:SLA(Subledger Accou ...

  4. Oracle EBS R12文件系统结构(学习汇总网上资料)

    Oracle EBS R12在服务器端文件结构如下: 顶层目录下面分为 1)inst --–跟ebs整个实例(instance)相关的配置信息以及其他信息 2)  db   ---主要存储DB层的信息 ...

  5. Oracle EBS R12经验谈(二)

    作者: jianping.ni    时间: 2009-2-13 12:52     标题: Oracle EBS R12经验谈(二) OAF页面:银行帐户开户人LOV值列表无值    在输入 应付超 ...

  6. 处理Oracle EBS R12登录首页跳转出现unexpected error问题(转)

    原文地址: 处理Oracle EBS R12登录首页跳转出现unexpected error问题 经上网搜索,造成此问题的问题有很多,如内存不足.系统参数配置不当.程序代码.系统表空间不足等原因.查询 ...

  7. Oracle EBS R12 客户表结构

    参考链接: Oracle EBS R12 客户表结构 Oracle EBS中的“客户”."客户地点".‘订单’之间的关系 Oracle EBS中的“客户”."客户地点&q ...

  8. Oracle EBS APP-FND-02938 多组织例程初始化产品报错

    Oralce EBS R12中引入了MOAC的控制,所有多OU的表对象都添加了数据库VPD的控制策略,需要访问这些对象中的数据,首先需要进行多组织环境的初始化,但是如果客户化的应用中也需要具备多OU的 ...

  9. ORACLE EBS R12 FOR LINUX 开机后如何启动数据库、应用脚本[Z]

    在Linux中安裝EBS  R12後, EBS關閉與啟動的程序為: 1. 關閉EBS - 先關閉Applications Server $ cd /d01/oracle/VIS/inst/apps/V ...

随机推荐

  1. Redis开启远程登录连接

    Redis 安装详见 http://www.cnblogs.com/zendwang/p/6560628.html 当前安装测试版本:Redis 3.2.8 默认安装完毕Redis只能本机访问 [ro ...

  2. 位运算n & (n-1)的妙用

    本文转自:http://blog.csdn.net/zheng0518/article/details/8882394 按位与的知识 n&(n-1)作用:将n的二进制表示中的最低位为1的改为0 ...

  3. numpy的初探

    # data = numpy.genfromtxt("C:\\Users\\Admin\Desktop\\111.txt", delimiter='\t', dtype='str' ...

  4. 20160227.CCPP体系详解(0037天)

    程序片段(01):01.一对一模式.c+02.中介者模式.c+03.广播模式.c 内容概要:事件 ///01.一对一模式.c #include <stdio.h> #include < ...

  5. activiti源码分析

    http://blog.csdn.net/vote/candidate.html?username=qq_30739519 欢迎大家投票吧谢谢

  6. python模块:时间处理模块

    http://blog.csdn.net/pipisorry/article/details/53067168 常用python自带时间处理模块 python自带的时间处理模块参考[操作系统服务:ti ...

  7. Scala:数据类型和变量

    http://blog.csdn.net/pipisorry/article/details/52902158 Scala数据类型 Scala 与 Java有着相同的数据类型,下表列出了 Scala ...

  8. Linux中的高级文本处理命令,cut命令,sed命令,awk命令

    1.2.1 cut命令 cut命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields    ## 用于有特定分隔字符 [r ...

  9. pdflush的工作原理

    大家知道,在linux操作系统中,写操作是异步的,即写操作返回的时候数据并没有真正写到磁盘上,而是先写到了系统cache里,随后由pdflush内核线程将系统中的脏页写到磁盘上,在下面几种情况下,系统 ...

  10. PGM:有向图模型:贝叶斯网络

    http://blog.csdn.net/pipisorry/article/details/52489270 为什么用贝叶斯网络 联合分布的显式表示 Note: n个变量的联合分布,每个x对应两个值 ...