- Newest
- Most votes
- Most comments
Hi Rakesh,
Oracle PL/SQL does not load privileges from roles (other than PUBLIC) when compiling or executing Definer's Rights objects, or when compiling Invoker's Rights objects. For additional details on privilege management in PL/SQL, please refer to Oracle's documentation.
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/configuring-privilege-and-role-authorization.html#GUID-5C57B842-AF82-4462-88E9-5E9E8FD59874
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnpls/plsql-subprograms.html#GUID-41D23DE7-3C07-41CF-962B-F92B696594B5
In most cases, you will have been given access to RDSADMIN packages via a role, which will work in standard SQL and anonymous blocks but not in named blocks. To get around this, you will need to directly grant object privileges to the owner of the PL/SQL block.
grant execute on rdsadmin.rds_file_util to <procedure owner>;
Hope this helps. Thanks!
Michael
Thank you, Michael, for your response.
I have only one master user for the database schema and I am trying to write this named block (pl/sql procedure) in the same user.
When I tried the grant execute on rdsadmin.rds_file_util to user, it returns a you do not have permission to GRANT error.
I am troubling an Oracle DBA to help me with this. If we get this resolved, I will post the solution that worked for us.
Relevant content
- asked 9 months ago
- asked a year ago
- asked 2 years ago
- asked 2 years ago
- AWS OFFICIALUpdated 10 months ago
- AWS OFFICIALUpdated a month ago
- AWS OFFICIALUpdated 7 months ago
- AWS OFFICIALUpdated a year ago