De ce în pl

Cel mai probabil, un obiect străin are un privilegiu, dat doar printr-un rol. Să utilizeze obiecte ale altui utilizator sau privilegii de sistem în procedurile / declanșatoarele acestora etc.





precum și în nevoia de a-și da un privilegiu direct, nu prin rol.
De asemenea, această regulă ar trebui luată în considerare pentru SQL dinamic:

Versiunea utilizată
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Producție
PL / SQL Release 9.2.0.1.0 - Producție
CORE 9.2.0.1.0 Producție







Problema este că dacă o procedură este creată ca executabilă asupra drepturilor creatorului ei, atunci privilegiile necesare pentru a executa comenzi dinamice SQL trebuie să fie date creatorului în mod explicit și nu prin rol. Un punct foarte important, nu este vorba despre privilegiul de a executa o procedură, ci despre privilegiile necesare pentru a executa comenzi dinamice SQL.

1) Creați un utilizator

Vizitează acest utilizator

-- asigurați-vă că utilizatorul are dreptul de a crea un tabel

Dezvoltatorii foarte des sunt plictisitori de ce, dacă creez o tabelă în sqlplus
sau dinamic într-un bloc anonim, atunci totul este în ordine, totuși dacă fac asta
procedură, primesc o eroare ORA-01031: privilegii insuficiente. Iată răspunsul la
această întrebare. Când utilizați un bloc anonim, situația este diferită. Bloc anonim
executați ca executor, astfel încât privilegiile acordate prin rol,
acționează!

Utilizarea SQL dinamic în trigger-e

Declanșatorul este executat pe drepturile creatorului său, și nu ca utilizator care a declanșat-o. Astfel, cele de mai sus se referă la SQL dinamic în trigger-uri - privilegiile necesare trebuie să fie date explicit și nu printr-un rol.







Articole similare

Trimiteți-le prietenilor: