grante execute on package to remote user oracle

I am trying to grant execute to packages in the WMIS database for users executing the package from the FMDR database.

They connect to the WMIS database via a link.

I have tried to grant execute to public from WMIS , but this does not solve my underlying problem, which is that oracle cant see my packages from teh package boday when they are being called from a remote user via a database link.

IN WMIS Database

EXECUTE  ON  TEG.PACKAGE_A TO PUBLIC
EXECUTE  ON  TEG.PACKAGE_B TO PUBLIC

Package A calls procdures from PAckage B. Code works fine from the WMIS database,


IN FMDR database we connect to wmis via DB_WMIS_LINK, but when we execute package_A from FMDR oracle gives the following error

ORA-06508: PL/SQL: could not find program unit being called

So to resolve this I am trying to grant any user that connects to teh WMIS database via the
database link execute privildges....

any help please ....
LVL 2
Jayesh AcharyaTechnichal ConsultantAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Wasim Akram ShaikCommented:
"ORA-06508: PL/SQL: could not find program unit being called"


EXECUTE  ON  TEG.PACKAGE_A TO PUBLIC
EXECUTE  ON  TEG.PACKAGE_B TO PUBLIC

instead of giving the access to public, you could have given to the user to who owns the db link.. anyways this should not be a problem..

i think the problem is something different inside these packages there may be some function/procedure/package calls on which the fmdr dblink user doesnot have privilege to execute which is causing the problem indeed..

but try giving like this

grant all on TEG.PACKAGE_A to <db_link_user>/public

grant all on TEG.PACKAGE_B to <db_link_user>/public



how are you executing the script, it will give you more generic message rather than what you have mentioned here.. it will give you something like this

at line 280:
ORA-06508: PL/SQL: could not find program unit being called
ORA-0

paste the total error message... if you get the line number then you can go that particular line number and see what object is there and grant execute on that particular object to the dblinkuser again and try once more..
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Wasim Akram ShaikCommented:
jhacharya.. can i know the reason for the penalty grade..??

the question has been well answered.. if you had needed further clarifications, you could have asked more.. can you let me know what has been missed out here..

if you think nothing has been missed out.. then you should have closed this question with proper grading..!!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.