【问题标题】:dbms_java.grant_permission is required for every new session每个新会话都需要 dbms_java.grant_permission
【发布时间】:2021-03-25 08:02:46
【问题描述】:

我正在尝试实现 java RMI 客户端服务器连接,我在 NetBeans IDE 中创建了我的服务器,并在 oracle 数据库中创建了客户端类作为 java 存储过程,并通过我的 PLSQL 块中的 oracle 函数使用它,一切正常但我卡住了在下面的小问题中:

我在 SYSTEM 用户中创建了这个 java 存储过程,并通过 SYSDBA 将dbms_java.grant_permission('SYSTEM','java.net.SocketPermission','192.168.43.25:*','connect,resolve') 提供给 SYSTEM 用户,“*”用于所有可用端口。我的服务器得到了完美的响应,但直到特定会话到期。

每当我从 SYSTEM 用户注销并再次登录时,它再次向我抛出异常 the Permission ("java.net.SocketPermission" "192.168.43.25:56792" "connect,resolve") has not been granted 请指导我如何摆脱这个重复的任务?因为在开发环境中我会管理它,但是如何在生产环境中部署它。我的环境是 Oracle DB 18c XE,谢谢!

以下是我的 java 存储过程:

create or replace and compile java source named rmi as
package rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.Naming;
import java.security.Policy;




 public class RmiClient {

    public RmiClient(){
    }

    public static String getRequestFromClient(){
        Policy.setPolicy(new MyPolicy());
        String result = "";
        try {
            IServer server = getServer();
            result = server.getRequestFromClient();
        } catch (Exception ex) {
            result = ex.getMessage().toString();
        }
        return result;

    }
    private static IServer getServer() throws Exception {
        Parameter configurationParameters = new Parameter();
        IServer server = (IServer) Naming.lookup( configurationParameters.objectName);

        return server;
    }
    }

【问题讨论】:

    标签: java database oracle oracle11g rmi


    【解决方案1】:

    使用DBMS_JAVA 授予权限与典型的 Oracle 授予略有不同。使用DBMS_JAVA.GRANT_PERMISSION 授予权限后,您需要在授予执行后的某个时间点COMMIT 才能使其永久生效。请注意在Oracle documentation 中的DBMS_JAVA 调用之后有一个COMMIT

    【讨论】:

    • 感谢您的回复,但我已经这样做了,但仍然面临同样的问题。以下代码用于授予权限:begin dbms_java.grant_permission('SYSTEM','java.net.SocketPermission','192.168.43.25:*','connect,resolve'); commit; end;
    猜你喜欢
    • 1970-01-01
    • 2014-04-25
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多