0

我创建了一个简单的小程序 ( Java 1.7.0_07),我尝试在其中连接到 Oracle 数据库 ( ojdbc6.jar)。该小程序在我的 IDE 的小程序查看器中运行良好,但无法从 Web 正确运行。

我遇到了安全异常,所以我签署了 jar 文件,认为可以修复它,但我仍然遇到安全异常,即:

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "oracle.jdbc.RetainV9LongBindBehavior" "read")
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
    at java.lang.System.getProperty(Unknown Source)
    at oracle.jdbc.driver.PhysicalConnection$1.run(PhysicalConnection.java:3147)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.jdbc.driver.PhysicalConnection.getSystemProperty(PhysicalConnection.java:3143)
    at oracle.jdbc.driver.PhysicalConnection.readConnectionProperties(PhysicalConnection.java:736)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:519)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.ericr.signedApplet.SignedApplet.init(SignedApplet.java:61)
    at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我一直在用头撞墙,试图让事情井井有条,关于如何设置的信息似乎相互矛盾。

所以......甚至有可能做我想做的事吗?如果是这样,是否有指南让我知道我需要在安全方面做什么才能让小程序在从 Web 访问时正常工作?

谢谢...

4

5 回答 5

2

问题归结为AccessControlException. 显然需要信任小程序才能读取该oracle.jdbc.RetainV9LongBindBehavior属性。

OTOH 通常建议通过将数据库放在 Web 服务后面来限制对数据库的访问。在这种情况下,applet 可以简单地连接到同一站点的 Web 服务,然后做它需要做的事情。

于 2012-12-05T03:39:39.573 回答
0

可以或应该可以通过 JDBC 从 applet 连接到 Oracle 数据库;有关说明,请参阅Oracle 10g 第 1 版的Oracle 数据库 JDBC 开发人员指南和参考中的第 24 章“Applets 中的 JDBC”,或者它与 Oracle 10g 第 2 版的类似物

于 2012-12-05T03:32:29.887 回答
0

您可能还想查看VJDBC项目。这可能是您正在寻找的东西。

于 2012-12-05T07:34:16.917 回答
0

两种环境之间的差异可能与您用于 JVM 的参数有关。在 NetBeans 中,对于我的Apache Tomcat服务器,我单击并启用了“使用安全管理器”选项,之后,我看到我收到的错误与您在我的 Web 服务器上遇到的完全相同。

要找到此选项,请转到顶部菜单并单击工具 > 服务器。然后,单击左侧菜单中“服务器”下的 Web 服务器。在右侧菜单上,单击“平台”选项卡,然后禁用“使用安全管理器”,这可能会解决您的问题。

于 2013-02-27T21:54:21.450 回答
-1

您需要检查访问 oracle 文件夹的权限或将用户添加到 oracle 组

于 2012-12-05T04:57:07.010 回答