Privileges and grants

See Custom password security
See Profiles
See How to Java for privileges relative to the embedded JVM
grants to read all from another schema
select 'grant select on ' || owner || '.' || table_name || ' to ' || 'MON_APP;' granta
from (
  select owner, table_name from dba_tables
  union all
  select owner, view_name from dba_views
) a 
where owner = 'IUM'

 

Developers needs grants to see udump trace files
#Create this with user oracle
[granta.ksh]
#!/bin/ksh
chmod 644 /app/oracle/admin/SAS_DEV/udump/*

#give developers permission to launch this file
chmod 755 granta.ksh

#developers must launch [granta.ksh] before reading traces

 

See current system privileges available in the user session
select * from session_privs

DBA_COL_PRIVS
DBA_ROLE_PRIVS
DBA_SYS_PRIVS
DBA_TAB_PRIVS
select * from DBA_TAB_PRIVS
where table_name = 'PIPPO'

revoke all on geneva_admin.mlog$_budgetcentre from dwh_user;

 

I want to see a package body from another user, that only.

So you don't want to use the CREATE ANY PROCEDURE grant.
This is the best way to do it:

Create this package as SYS varcharjoiner_head.txt, varcharjoiner_body.txt

Create this one too:
CREATE OR REPLACE PACKAGE cstGrant
IS
  function getBody return clob;
END cstGrant;
/

CREATE OR REPLACE PACKAGE BODY cstgrant
IS
   FUNCTION getbody RETURN CLOB
   IS
      RESULT   CLOB;

      CURSOR c
      IS
         SELECT text
           FROM dba_source
          WHERE NAME = 'MYUTILS' AND TYPE = 'PACKAGE BODY';

      tt       varcharjoiner.t;
   BEGIN
      OPEN c;

      FETCH c
      BULK COLLECT INTO tt;

      RESULT := varcharjoiner.buildclobfromvarchar2curproc (tt);

      CLOSE c;

      RETURN RESULT;
   END;
END cstgrant;
/