Ich versuche, den folgenden Befehl auszuführen:Laufsystem Befehl von Oracle gespeicherten Prozedur
select os_command.exec('/bin/mkdir /home/smucha/testdir_ora3') from dual;
/
Das funktioniert gut, wenn ich angemeldet bin in als SYS.
Wenn ich versuche, ist als ein Benutzer ausführen SEBA bekomme ich folgende Fehlermeldung:
ORA-29532: java.security.AccessControlException: the Permission (java.io.FilePermission /bin/mkdir execute) has not been granted to SEBA. The PL/SQL to grant this is dbms_java.grant_permission('SEBA', 'SYS:java.io.FilePermission', '/bin/mkdir', 'execute')
ORA-06512: at "SEBA.OS_COMMAND", line 68
29532. 00000 - "Java call terminated by uncaught Java exception: %s"
*Cause: A Java exception or error was signaled and could not be
resolved by the Java code.
*Action: Modify Java code, if this behavior is not intended.
Ich habe versucht, die erforderliche Berechtigung mit SYS Konto zu gewähren.
Nach der Ausführung des folgenden Code:
call dbms_java.grant_permission('SEBA',
'SYS:java.io.FilePermission', '/bin/mkdir', 'execute');
ich:
dbms_java.grant_permission 'SEBA', succeeded.
Allerdings, wenn ich versuchen, den Befehl auszuführen:
select os_command.exec('/bin/mkdir /home/smucha/testdir_ora3') from dual;
/
Ich bekomme den gleichen Fehler wie Vor.
Können Sie mir bitte mitteilen, was ich tun muss, um os-Befehle auszuführen?
Alles funktioniert, wenn ich als SYS verbunden bin, so ist es wie Benutzer SEBA einige Berechtigungsprobleme hat aussieht.
Ich weiß nur nicht, welche Berechtigungen zu gewähren?