使用ORACLE PL/SQL执行Unix Sun Solaris命令时出现权限问题
我已经创建了2个过程和一个java源代码 一个过程是调用java类TestHostCommand使用ORACLE PL/SQL执行Unix Sun Solaris命令时出现权限问题,oracle,unix,plsql,execute,java-stored-procedures,Oracle,Unix,Plsql,Execute,Java Stored Procedures,我已经创建了2个过程和一个java源代码 一个过程是调用java类TestHostCommand PROCEDURE TEST2 (p_command IN Varchar2) AS LANGUAGE JAVA NAME 'TestHostCommand.executeCommand(java.lang.String)'; Java源代码是: import java.io.*; public class TestHostCommand { public void exe
PROCEDURE TEST2
(p_command IN Varchar2)
AS LANGUAGE JAVA
NAME 'TestHostCommand.executeCommand(java.lang.String)';
Java源代码是:
import java.io.*;
public class TestHostCommand
{
public void executeCommand(String command)
{
Runtime rt = Runtime.getRuntime();
Process p = null;
try
{
p = rt.exec("ls > /Orion/list/list.txt");
return;
} catch ( IOException ioe)
{
System.out.println("Error executing file");
}
}
}
另一个过程是授予权限,但生成的权限不正确:
PROCEDURE GRANT_PERMISSION
(grantee IN VARCHAR2,
permission_type IN VARCHAR2,
permission_name IN VARCHAR2,
permission_action IN VARCHAR2)
IS
BEGIN
DBMS_JAVA.grant_permission ('ORION', 'java.io.FilePermission',
'<>', 'read ,write, execute, delete');
DBMS_JAVA.grant_permission ('ORION', 'SYS:java.lang.RuntimePermission',
'writeFileDescriptor', '');
DBMS_JAVA.grant_permission ('Orion', 'SYS:java.lang.RuntimePermission',
'readFileDescriptor', '');
END;
程序授予\u权限
(VARCHAR2的受让人,
VARCHAR2中的权限类型,
VARCHAR2中的权限名称,
权限(VARCHAR2中的操作)
是
开始
DBMS_JAVA.grant_permission('ORION','JAVA.io.FilePermission',
“读、写、执行、删除”;
DBMS_JAVA.grant_permission('ORION','SYS:JAVA.lang.RuntimePermission',
“writeFileDescriptor”,”;
DBMS_JAVA.grant_permission('Orion','SYS:JAVA.lang.RuntimePermission',
‘readFileDescriptor’,“”);
结束;
错误是无效的对象
谢谢第一条语句中的第三个参数应该是文件或目录路径,例如
DBMS_JAVA.grant_permission ('ORION', 'java.io.FilePermission',
'/home/orion/*', 'read ,write, execute, delete');
或者你可以直接授予猎户座,因为这几乎就是你正在做的事情
无论哪种方式,授予ORION最大权限都会使该帐户非常强大,而且您需要严格控制该帐户,尤其是在生产环境中。谢谢您的回答。因此,我需要通过DBA设置权限,以便它能够为我工作。ThanksI当前收到此错误:8:22:50执行失败:ORA-29532:Java调用被未捕获的Java异常终止:Java.lang.SecurityException:policy table update Java.io.FilePermission,TestHostCommand