java - 是否可以编写一个通过 JDBC 连接到 Oracle 的小程序?

标签 java oracle security jdbc applet

我创建了一个简单的小程序 (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)

我一直在用头撞墙,试图让事情按顺序进行,但关于如何设置的信息似乎存在冲突。

那么...是否有可能做我想做的事情?如果是这样,是否有一个指南可以让我知道我需要采取哪些安全措施才能使小程序在从网络访问时正常工作?

谢谢...

最佳答案

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

OTOH 通常建议通过将数据库置于 Web 服务后面来限制对数据库的访问。在这种情况下,小程序可以简单地连接到同一站点的 Web 服务,并执行其需要的操作。

关于java - 是否可以编写一个通过 JDBC 连接到 Oracle 的小程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13715827/

相关文章:

java - 如何 Autowiring RedisTemplate<String,Object>

java - 如何从 Firebase 存储获取 URL getDownloadURL

java 方波

java - 线程 "main"javax.persistence.PersistenceException : org. hibernate.InstantiationException 中出现异常:实体没有默认构造函数:

sql - 在 oracle 中使用正则表达式验证英国邮政编码

sql - 在PL/SQL Oracle中出错

java - 尝试从证书中获取签名时出现格式错误的内容异常

linux - 防止空格成为for循环bash/shell中的定界符

java - 控制对通信层的访问

windows - 为什么 LogonUser(...) 不适用于域帐户?