Miért a pl
Valószínűleg egy idegen tárgynak csak egy szerepe van megadva. Más felhasználók vagy rendszer jogosultságok objektumainak felhasználása az eljárásokban / triggerekben stb. valamint a munkahelyi szükséglet, hogy közvetlenül, nem pedig a szerep révén, kiváltságot biztosítsanak nekik.
Ezt a szabályt is figyelembe kell venni a dinamikus SQL esetén:
A használt verzió
Oracle9i Enterprise Edition kiadás 9.2.0.1.0 - Termelés
PL / SQL kiadás 9.2.0.1.0 - Gyártás
CORE 9.2.0.1.0 Gyártás
A probléma abból adódik, hogy ha az eljárás létre egy futtatható a jogait az alkotó, a szükséges jogosultságokat, hogy megfeleljen a következő dinamikus SQL parancsokat kell adni az alkotók egyértelműen, és nem egy szerepet. Egy nagyon fontos pont, mi nem beszélünk a jogosultságokat, hogy végre az eljárást, és a szükséges jogosultságokkal dinamikus SQL utasítások végrehajtásához.
1) Hozzon létre egy felhasználót
A felhasználó látogatása
-- győződjön meg arról, hogy a felhasználónak jogában áll létrehozni egy táblát
Nagyon gyakran a fejlesztők rejtélyesek, miért, ha létrehozok egy asztalt sqlplusban
vagy dinamikusan egy névtelen blokkban, akkor minden rendben van, de ha ezt megteszem
eljárás hibaüzenetet kap ORA-01031: nem elegendő jogosultság. Itt van a válasz
ez a kérdés. Anonim blokk használata esetén a helyzet más. Névtelen blokk
végrehajtóként működik, így a szerepen keresztül adott kiváltságok,
jár!
Dinamikus SQL indítások használata
A ravaszt az alkotója jogaival hajtják végre, NEM pedig a felhasználónak, aki kiváltotta. Így a fentiek a dinamikus SQL triggerek esetén érvényesek - a szükséges jogosultságokat explicit módon kell megadni, nem pedig szerepkörön keresztül.