How is CLIENT_INFO being replaced in R12?
Lets take an example.
In pre Release 12, you would have had following methodology for PO_HEADERS_ALL
a. A table is created in PO Schema, named PO_HEADERS_ALL
b. A synonym named PO_HEADERS_ALL is created in APPS schema, referring to PO.PO_HEADERS_ALL
c. Create a view PO_HEADERS in APPS schema, as "select * from po_headers_all where org_id=client_info"
But now in R12, following will happen
a. A table is created in PO Schema, named PO_HEADERS_ALL
b. A synonym named PO_HEADERS_ALL is created in APPS schema, referring to PO.PO_HEADERS_ALL
c. Another synonym named PO_HEADERS is created in APPS, referring to PO_HEADERS_ALL
d. A Row Level security is applied to PO_HEADERS, using package function MO_GLOBAL.ORG_SECURITY.
This can be double-checked by running SQL select * from all_policies where object_name='PO_HEADERS'
e. The effect of this policy is that,whenever you access PO_HEADERS, Oracle RLS will dynamically append WHERE CLAUSE similar to below
SELECT * FROM PO_HEADERS WHERE EXISTS (SELECT 1 FROM mo_glob_org_access_tmp oa WHERE oa.organization_id = org_id)
Also see **** below, latter
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
When & from where is mo_global.init called ?
This package procedure will be called as soon as you login or as soon as you switch responsibility. Just like FND_GLOBAL.INITIALIZE is called. It is safe to assume that Oracle will invoke MO_GLOBAL.INIT after FND_GLOBAL.INITIALIZE
Is mo_glob_org_access_tmp table a global temporary table?
Yes, it is. Hence after Multi Org is initialised for your session, your session will have X number of records in table 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]
What is the purpose of MO_GLOBAL.ORG_SECURITY?
The purpose of Row-Level-Security is to hide certain data[based on some conditions]. RLS does so by appending a where clause to the secured object.
1. MO_GLOBAL.ORG_SECURITY is a function that returns a predicate for the WHERE CLAUSE
2. The where clause will be appended to Table/Synonym/View for which Multi Org Row Level security is enabled
What is the purpose of MO_GLOBAL.SET_POLICY_CONTEXT ?
This procedure has two parameters
p_access_mode
Pass a value "S" in case you want your current session to work against Single ORG_ID
Pass a value of "M" in case you want your current session to work against multiple ORG_ID's
p_org_id
Only applicable if p_access_mode is passed value of "S"
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')
Why will I as a Apps Techie ever use MO_GLOBAL.SET_POLICY_CONTEXT ?
Lets say you wish to call an API to create invoices in ORG_ID 101. In case the API does not have a parameter for Org_id, you can do the below
a. exec MO_GLOBAL.SET_POLICY_CONTEXT('S',101)
b. Call the Invoice API, which will internally read the ORG_ID from MO Current Context.
From SQL*Plus, I wish to simulate login to a specific responsibility. How do I do this?
a. Call FND_GLOBAL.INITIALIZE
This will set your responsibility id, user_id etc
b. call MO_GLOBAL.INIT
This will read the MO profile option values for your responsibility/user, and will initialize the Multi Org Access.
Comments
Keep up the good work.
Thanks a lot!
SO nicely explained..
Kudos to your knowledge sharing attitude and dedication to teach others what you know!
Regard s
Gayathri
Brillian t !! There is load of knowledge here and it pays to learn from the learned !
Keep up the good work. I need some advise from you, can you please have your personal email address?
Thank s & Regards
Harish
I can't leave my email address here, as spammers may pick it up.
However, I have sent you an email from my personal address.
Thank s,
Anil Passi
Keep the good work going.
Thanks
Arshad
DBMS_APPLI CATION_INFO.set _client_info to query views.
Will this remain same even in R12 with RLS in place? As its mentioned that FMD_Initialize will be also called.
Superb site . I am always waiting for new toipics from you .
Firstly can you send me a mail from your mail id ?
secondily , i have a scenario where we have done some customizations in 11i custom.pll . How to carry them forward in r12 self service pages . What is the way ahead ?
regards
Ankur
Tha nks
Anil Passi
How can I incorporate the RLS feature to my custom tables which are created in custom schema and have synonyms in apps schema
Regar ds
Sanjeeva
We are developing the reports in Oracle BI Discoverer 10G on Release12. In Release12 Multi Org Views are now replaced by RLS Secured Synonyms.
My client wants implement the security for reports at org level. Here in R12 all the Multi-Org views are replced with RLS synonyms and we can access the multiple organizations data in single responsibility.
I tried like i have created one custom folder with synonym(select * from apps.ap_invoice s) and i have login with xxx responsibility which attached "MO: security profile" with two organizations.
If i develop the work sheet with this folder , i can able to see only one org data that is assigned by the "MO: Operating Unit".
Please suggest me how to implement the multi-Org Access Control in release12 for discoverer reports.
Thank s & Regards
Ramakri shna Gottipati
I enjoyed your post. I would like to get your opinion on the xla_security_pk g.set_security_ context procedure.
The only difference between this procedure and the mo_global.init (that I can make out) is that xla_security_pk g.set_security_ context sets the DBMS_SESSION security group to XLA. Do you know why this is the case and why XLA can't use a normal mo_global.init?
Regards
How to i use RLS Securety Table in Discoverer Report. Now we are Migraring From 11i to 12i now Some View are not showing the Vl
Value in the Discovere Report
Thank you
I found this article by Google search and only after reading review figure out it is yours again !!!!
Thank you so much from all EBS community for keeping your blog up to date and providing us with valuable informnation .
Best Regards Artur
functionalguy.blogspot.com/2010/04/multi-org-access-control-understanding.html
Thanks
Devendra
Thanks a lot for the article.We have a requirement for a client where they have implemented R12 but have not used MOAC so far. They now want to implement an additional set of modules and also turn on the MOAC feature.
Can you please tell me what impact it will have on the existing code. We have custom concurrent programs with PL/SQL executables, OAF pages and workflows that are already developed.
Also, for new code that we will write after the enablement of the MOAC feature, I am assuming that using views such as po_headers instead of tables like po_headers_all and setting the org_id using exec MO_GLOBAL.SET_P OLICY_CONTEXT(' S',101) where the api does not have an org_id parameter should suffice for all objects (Reports, Concurrent programs with PL/SQL executables, Workflows, OAF objects etc..). Please confirm my understanding.
Great website, stick with it!
fantastic informative article here at my house.
the most recent news posted here.
about this, like you wrote the ebook in it or
something. I believe that you just could do with a few p.c.
to drive the message house a little bit, however instead of that,
this is wonderful blog. A fantastic read. I will definitely be back.
you knew of any message boards that cover the same topics
talked about in this article? I'd really like to be a part of online community where I can get suggestions from other knowledgeable individuals that
share the same interest. If you have any recommendations , please let me know.
Appreciate it!
Also visit my blog post: sbobet: https://thaibettrick.blogspot.com/2018/07/blog-post.html
my site - sbobet: https://sites.google.com/view/sbobetclub168/
through Google, and found that it's really informative.
I am gonna watch out for brussels. I will be grateful if you continue this in future.
Lots of people will be benefited from your writing.
Cheers!
Also visit my blog post; เว็บพนันออนไลน์ : http://maps.google.com.gi/url?q=https://gobetting.co/
The words in your article seem to be running off the screen in Opera.
I'm not sure if this is a formatting issue or
something to do with web browser compatibility but I figured I'd post to let you know.
The style and design look great though! Hope you
get the issue fixed soon. Many thanks
Feel free to surf to my web blog - เว็บพนันออนไลน์ : http://maps.google.pn/url?q=https://168thaibet.com/
I have always disliked the idea because of the expenses.
But he's tryiong none the less. I've been using WordPress on a number of websites for about a year and am worried
about switching to another platform. I have heard very good things about blogengine.net.
Is there a way I can import all my wordpress posts into it?
Any kind of help would be greatly appreciated!
My web site: เว็บพนันออนไลน์ : https://www.google.sr/url?q=https://road2bet.com/
was curious what all is needed to get set up?
I'm assuming having a blog like yours would cost a pretty penny?
I'm not very internet savvy so I'm not 100% sure. Any tips or advice
would be greatly appreciated. Cheers
Here is my blog post ... เว็บพนันออนไลน์ : https://www.google.td/url?q=https://168thaibet.com/
I'm getting fed up of Wordpress because I've had problems with hackers and I'm looking at alternatives for another platform.
I would be fantastic if you could point me in the
direction of a good platform.
Also visit my web-site - เว็บพนันออนไลน์ : http://maps.google.com.ng/url?q=https://168thaibet.com/
I really like what you have acquired here, really like what you're
saying and the way in which you say it. You make it enjoyable and you still take
care of to keep it smart. I can't wait to read far more from you.
This is actually a terrific website.
Im really impressed by it.
Hey there, You have performed a great job. I will definitely digg
it and in my view recommend to my friends. I am sure they'll be benefited from this
website.
articles. Stay up the good work! You already know, lots of individuals
are looking round for this info, you could help them greatly.
to test the spelling on quite a few of your posts.
A number of them are rife with spelling issues and I to find it very troublesome to
tell the truth then again I will definitely come back again.
sound like you know what you're talking about! Thanks
that truly how to do blogging and site-building.
you made running a blog look easy. The whole glance of your web
site is wonderful, as smartly as the content!
and additional data, is there any other web page which presents these kinds of things in quality?
question in which I'd like to ask if you don't mind.
I was interested to know how you center yourself and clear your mind prior to writing.
I have had difficulty clearing my mind in getting my
ideas out there. I truly do take pleasure in writing but it
just seems like the first 10 to 15 minutes tend to be
lost just trying to figure out how to begin. Any recommendations
or hints? Kudos!
this moment i am reading this impressive educational paragraph here at my home.
on this blog loading? I'm trying to determine if its
a problem on my end or if it's the blog. Any suggestions would be greatly appreciated.
Looking through this article reminds me of my previous roommate!
He always kept talking about this. I most certainly
will send this article to him. Fairly certain he'll have a good read.
I appreciate you for sharing!
articles everyday along with a mug of coffee.
She placed the shell to her ear and screamed.
There was a hermit crab inside and it pinched her ear.
She never wants to go back! LoL I know this is completely off topic but I had to tell someone!
Exactly where are your contact details though?
that I really loved the usual info an individual supply for your visitors?
Is gonna be again incessantly in order to check out
new posts
Is that this a paid theme or did you modify it your self?
Either way keep up the nice high quality writing, it's uncommon to see
a nice weblog like this one today..
blogging then i propose him/her to pay a visit this website, Keep up the
fastidious work.
site daily, if so after that you will without doubt get nice know-how.
Just wanted to say I love reading your blog and look forward to
all your posts! Keep up the outstanding work!
interesting article like yours. It is pretty worth enough for me.
In my opinion, if all web owners and bloggers made good
content as you did, the internet will be much more useful than ever
before.
I have always disliked the idea because of the costs. But he's tryiong none the less.
I've been using WordPress on various websites for about a
year and am anxious about switching to another platform.
I have heard good things about blogengine.net. Is there a way I can transfer
all my wordpress content into it? Any help would be greatly appreciated!
I surprise how much effort you set to make one of these wonderful informative
web site.
thanks.
so here it takes place.
I really like what you have got here, really like what you are stating and the best
way through which you assert it. You're making it enjoyable and you continue to
care for to keep it sensible. I can't wait to read much
more from you. This is really a terrific web site.
used to pay a visit this webpage everyday.
I looked on the web to learn more about the issue and found most people will go
along with your views on this site.
Is anyone else having this issue or is it a issue on my end?
I'll check back later on and see if the problem still
exists.
explorer, would check this? IE still is
the market chief and a good portion of other folks will leave out your wonderful writing due to this
problem.
it's amazing article.
Look advanced to more added agreeable from you!
However, how can we communicate?
Whenever I take a look at your blog in Safari, it looks fine however, if opening in IE, it has some overlapping issues.
I just wanted to provide you with a quick heads up!
Besides that, excellent site!
read more news.
Look advanced to more added agreeable from you! However, how can we
communicate?
that.
a great deal of work? I have no knowledge of coding however
I had been hoping to start my own blog in the near future.
Anyways, if you have any ideas or techniques
for new blog owners please share. I know this
is off subject however I just had to ask. Thank you!
The clearness in your post is simply great and i can assume you're an expert on this subject.
Well with your permission allow me to grab your RSS feed to keep up
to date with forthcoming post. Thanks a million and please keep up the enjoyable work.
continuously i used to read smaller articles or reviews which also clear their motive, and that is also happening with this post which I am reading here.
have developed some nice practices and we are looking
to exchange solutions with others, why not shoot me an e-mail if interested.
and don't seem to get anything done.
RSS feed for comments to this post