Esiste una procedura di Oracle ereditano i privilegi del suo creatore?
-
26-09-2019 - |
Domanda
Ho 3 utenti Oracle A, B, C e si desidera utilizzare B (come intermedio) per importare una tabella da C ad A. Quando è collegato a B, posso correre "create table A.T1 come select * from T1 @C". Ma quando ho messo l'istruzione SQL in una procedura che crea B / possiede, continuo a ricevere "ORA-01031: privilegi insufficienti". Come sysdba, ho concesso tutti i diritti (DBA) a B. Allora, cosa mi manca qui? Grazie.
Soluzione
avere fornito le seguenti operazioni per B
utente?
sql> grant create any table to b;
Altri suggerimenti
In diritti stored procedure di un definitore (impostazione predefinita), gli unici privilegi che sono disponibili sono quelli che sono concessi direttamente all'utente, non quelli che sono stati concessi attraverso un ruolo (come DBA). Così Pablo è corretto che B avrebbe bisogno di avere il privilegio CREATE ANY TABLE come una sovvenzione diretta.