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. CentOS6.8虚拟机安装及ORALCE安装记录

    CENTOS6.8安装数据库及设置自启动脚本教程 作者:张欣橙 本文所需要的所有参数均位于文末附录中 一.新建虚拟机 选择下一步 选择下一步 选择稍后安装操作系统 选择LINUX 版本 CentOS ...

  2. 渗透测试环境DVWA搭建

    一.DVWA介绍 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供 ...

  3. 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器

    使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...

  4. Python3 标准库概览

    操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作目录 'C:\\Python ...

  5. Scroll Segmented Control(Swift)

    今天用了一个github上一个比较好用的Segmented Control但是发现不是我要效果,我需要支持scrollView.当栏目数量超过一屏幕,需要能够滑动. 由于联系作者没有回复,我就自己在其 ...

  6. WiFi文件上传框架SGWiFiUpload

    背景 在iOS端由于文件系统的封闭性,文件的上传变得十分麻烦,一个比较好的解决方案是通过局域网WiFi来传输文件并存储到沙盒中. 简介 SGWiFiUpload是一个基于CocoaHTTPServer ...

  7. Dynamics CRM2016 Web API获取实体元数据Picklist属性的Text&Value

    通过组织服务中获取实体picklist字段的text和value可以通过RetrieveAttributeRequest实现,但在使用web api的今天该怎么实现,本文即来一探究竟,本篇基于SDK中 ...

  8. Android图表库MPAndroidChart(四)——条形图的绘制过程过程,隐隐约约我看到了套路

    Android图表库MPAndroidChart(四)--条形图的绘制过程过程,隐隐约约我看到了套路 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库 ...

  9. 阿里云手动安装特定版本的nginx

    想添加nginx的缓存功能, 结果1.4.6还不支持. apt-get remove nginx 374 sudo apt-key add nginx_signing.key 375 deb http ...

  10. JavaMail API 概述

    JavaMail API提供了一种与平台无关和协议独立的框架来构建邮件和消息应用程序. JavaMail API提供了一组抽象类定义构成一个邮件系统的对象.它是阅读,撰写和发送电子信息的可选包(标准扩 ...