I want to give my users only the following rights:
GRANT EXECUTE ANY PROCEDURE TO <user> WITH ADMIN OPTION;
GRANT EXECUTE ANY PROGRAM TO <user> WITH ADMIN OPTION;
If they open the Schema Browser, and go to the procedure they can see the code but if they go to packages, they only see package specs and NOT package bodies.
This is an Oracle requirement and not Toad. If you're not a DBA user and you are granted execute rights, then you can see the source for the packages but not the package bodies.
if you have select privilege on DBA_SOURCE, the user will be able to see the package body.
GRANT SELECT ON SYS.DBA_SOURCE to <user>;