CREATE ROLE USR_ROLE;
GRANT EXECUTE ON USR_PCK to USR_ROLE;
GRANT USR_ROLE TO USROWN;
A tal proposito leggo al seguente link che sarebbe corretto fare
un'ALTER USER per renderlo ruolo di DEFAULT, mentre al link successivo
sembra spiegare che di fatto non si può definire una grant sul ruolo
per l'esecuzione di un package:
http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/privs.htm#15521
http://forums.oracle.com/forums/message.jspa?messageID=2358203
Qual'è l'approccio corretto?
Grazie per l'attenzione.
Attenzione, i due link che proponi sono per scenari diversi:
il caso del forum non è il semplice grant di execute ad una
procedura, il topic è relativo ad un utente che ha il grant
di execute su una procedura (chiamiamola A) ma sta compilando un'altro
package (B) che RICHIAMA la procedura A.
Invece tu puoi dare il privilegio execute per una procedura anche
attraverso un ruolo, salvo riconnettere l'utente, come da manuale.
M.