This content has been marked as final. Show 7 replies
alter any procedure
revoke execute on procedure_name* from user_name* ;
revoke create any procedure from <user>;
any thing else you are looking? you can give execute permissions as
grant execute on procedure <procedure_name> to <user>;
Edited by: CKPT on Nov 23, 2010 7:06 PM
the problem is that i want the users to see the body package and it's contents but i do not want the users to recompile it..
the alter any procedure privilege is not given to them but since i want them to see the package body i have to give the create any procedure..(but create any procedure also recompile.. that's my problem)
from privileged account
CREATE PROCEDURE DISPLAY_SOURCE(schema owner in VARCHAR2, procedure_name IN VARCHAR2)
GRANT EXECUTE ON DISPLAY_SOURCE TO <user_of_choice>
Where/ how are the developers trying to see the source?
Many GUIs will only show the source for packages that a user has the ability to execute. That is not an Oracle restriction, that is a restriction of the particular tool.
If you give the developers SELECT access on DBA_SOURCE, they can view the source code for any object in the database (you could grant the developers access to just that data dictionary view, but I would tend to think that giving them SELECT ANY DICTIONARY (or SELECT_CATALOG_ROLE) in development would be appropriate). That may or may not allow them to view the source in their favorite GUI, but that is a GUI issue not an Oracle privileges issue.
i do not want the users to recompile it..+
whatever priviledges you have granted to the user, just revoke execute on procedure can solve your poblem.
as you revoke execute on procedure the user will not be able to execute the procedure(this is what you want).