我正在尝试连接到我的远程 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/