java - 当有来自 java 程序的连接时,Oracle 不提供 osuser

标签 java oracle jdbc

我正在尝试连接到我的远程 Oracle 数据库,它已被锁定,并且有一个可以连接的用户和电脑的白名单。但是,当我尝试连接时,oracle 没有提供 OSUSER,因此我被拒绝。

这是我的连接方式:

public static final String CONNECTION_STRING =  "jdbc:oracle:thin:@myip:port:db";
public static final java.util.Properties CONNECTION_PROPERTIES = new java.util.Properties();
static {
    CONNECTION_PROPERTIES.setProperty("password","password"); 
    CONNECTION_PROPERTIES.setProperty("user","dbuser"); 
    CONNECTION_PROPERTIES.put("v$session.osuser", System.getProperty("user.name").toString());
    try {
        CONNECTION_PROPERTIES.put("v$session.machine", InetAddress.getLocalHost().getCanonicalHostName());
    } catch (UnknownHostException e) {
        System.out.println("Failed to determine hostname. Attempting with Localhost, this is unlikely to succeed.");
        e.printStackTrace();

        CONNECTION_PROPERTIES.put("v$session.machine", "localhost");
    } 
    CONNECTION_PROPERTIES.put("v$session.program", "GDS_Reports"); 
}

我建立了这样的连接:

  DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
  Connection conn = DriverManager.getConnection(GlobalConstants.CONNECTION_STRING, GlobalConstants.CONNECTION_PROPERTIES);

但是该表报告了这些连接:

MACHINE                                              OSUSER               DBUSER               FTIME
---------------------------------------- -------------------- -------------------- -----------------
wn7-18tl6m1.domain                                            dbuser               02-SEP-2011 14:46
wn7-18tl6m1.domain                                            dbuser               02-SEP-2011 14:46  
wn7-18tl6m1.domain                                            dbuser               02-SEP-2011 14:46
wn7-18tl6m1.domain                                            dbuser               02-SEP-2011 14:46

最佳答案

某些 Oracle JDBC 驱动程序存在错误,因此未设置 OSUSER,请参阅 fixed bugs in 10.2.0.4因此您需要升级到较新的版本来修复该问题。

关于java - 当有来自 java 程序的连接时,Oracle 不提供 osuser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7285595/

相关文章:

java.sql.SQLException : Access denied for user 'root' @'localhost'

sql - 排除非排他性出现的值对

java - 启动 Derby 数据库失败

java - "com.jacob.com.ComFailException: Can' 找不到绰号“为什么?

java - 为什么在 Java 中实例化 SimpleEmail 类时会收到此异常?

sql - 在 oracle 中使用 select * 重命名单个列

Java:仅在第一次连接到 OracleDriver 时速度很快

java - 真正兼容 JDBC4 的 Oracle 驱动程序

java - 字符串中字符的位置和重复

java - Mockito 和单元测试 - 如何控制新对象的创建