Ausführen einer Prozedur nicht möglich

SonnyHH

Benutzer
Beiträge
22
Hallo @all!

Wir haben eine Produktions und eine Testumgebung. Die Testumgebung ist eine einfache Kopie der Produktion (Backup/Restore).

Nun habe ich mit einem Admin User eine Prozedur geschrieben und kompiliert. Bis zu diesem Punkt hat auch alles funktioniert. Auf der Testumgebung lässt sich die Prozedur ausführen. Auf der Produktionsumgebung kommt die folgende Fehlermeldung:

----------
Fehler beim Start in Zeile : 1 in Befehl -
exec pr_zahlungsabgleich(2, '27.12.2016')
Fehlerbericht -
ORA-01031: insufficient privileges
ORA-06512: at "ADMIN.PR_ZAHLUNGSABGLEICH", line 7
ORA-06512: at line 1
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a database operation without
the necessary privileges.
*Action: Ask your database administrator or designated security
administrator to grant you the necessary privileges
----------

Wir haben dem ADMIN die EXECUTE Berechtigung erteilt. Funktioniert trotzdem nicht.

Jemand eine Idee?
 
Werbung:
Was ist in der Prozedur bei Zeile 7 ?

Schau dir mal beim definieren der Prozedur das AUTHID Keyword an.

Vielen Dank für den Hinweis. Nachdem ich die Prozedur auf der Produktionsdatenbank mit AUTHID CURRENT_USER neu angelegt habe, funktioniert es.
Allerdings erklärt das nicht das unterschiedliche Verhalten der beiden (identischen) Umgebungen. Wie auch immer... es läuft.
 
Werbung:
PLSQL Prozeduren weden standardmäßig mit den Rechten des Eigentümers ausgeführt.
AUTHID CURRENT_USER bedeutet, dass die Rechte des aufrufenden Users verwendet werden. Vermutlich verwendest Du in TEST und PROD unterschiedliche User für den Aufruf, denn das Schlüsselwort hätte für eine Prozedur die ADMIN gehört und von ADMIN aufgerufen wird keinerlei Veränderung zur Folge.
 
Zurück
Oben