I have a procedure that does an update to a table owned by a user A.
I create a public synonym for this procedure and grant execute on this procedure to a Role which is then granted to User B.

The update successfully happens through the procedure if UserA (owner) runs the procedure but the procedure runs fine WITHOUT doing the update if USerB runs it. If we drop and recreate the synonym and then if uSerB runs this procedure the update goes through.

We have other similar procedures that run fine through the above process but this one seems to have problems.

Do you have any thoughts.

thx