Académique Documents
Professionnel Documents
Culture Documents
I hope you have already read article Basics of Multi Org in R12 . A few questions come to mind when we think about
Multi Org in R12. The best way to analyse those questions is by opening package MO_GLOBAL. Don't worry if you are
not yet on R12, package MO_GLOBAL is installed 11.5.10 too.Lets get digging.
Does this mean, if I create a new custom table, I will have to apply RLS [ Row Level Security ] against Custom table too?
Yes indeed, if it contains data partitioned by ORG_ID. All you need to do in such case is to assign package function
MO_GLOBAL.ORG_SECURITY to that table/synonym/view.
Will the Multi Org Row Level security be applied against the table or the synonym or the view?
In theory, RLS can be applied against any of the above objects. However in practice, you will apply RLS against Objects
in APPS Schema. This means, you will most probably apply RLS on Synonyms. Basically, the Multi Org Views are now
replaced by RLS Secured Synonyms. Hence no code change is required where the pre-R12 Multi-Org secured view was
being accessed. The responsibility of securing data as per ORG_ID now lies with RLS [also known as VPD - Virtual
Private Database].
I have made changes to my Multi Org Security Profile, by attaching a new Org Hierarchy. Do i need to run any process?
Just like we do in HRMS, it is advised that any changes to Security Profiles must be followed by running "Security List
Maintenance"
What is MO_GLOBAL.INIT
Purpose of mo_global.init :-
It will check if new Multi Org Security Profile is set, to decide if new Security Profile method will be used.
If the new MO security profile is set, then mo_global.init inserts one record, for each Organization in Org Hierarchy, in
table mo_glob_org_access_tmp
mo_glob_org_access_tmp. X is the number of organizations assigned to MO Security profile [view org hierarchy or org
list in security profile]
In SQL*Plus, I wish to set my session to work against a specific Org [one single org]. How do I do that in R12
SQL>> exec MO_GLOBAL.SET_POLICY_CONTEXT('S',101);
In the above case, ORG_ID 101 will be assigned as current org for your session.
Internally, following code in blue will be executed by Oracle when you set your context to single Org,
dbms_session.set_context('multi_org2', 'current_org_id', 101);
**** If the current database session is initialised for Single Org[as in above step], then Where clause appended to object
by Row-Level-Security will be
WHERE org_id = sys_context('multi_org2','current_org_id')