2

我遇到了从 Jython 脚本调用的 JDBC 连接器的问题。

我想使用 Wallet 连接到 Oracle 服务器。这是连接部分:

walletLocation=str(os.environ['HOME']+"./oracle")
System.setProperty("oracle.net.tns_admin",  str(os.environ['TNS_ADMIN']))
System.setProperty("oracle.net.wallet_location", str("(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY="+walletLocation+")))"))
url = "jdbc:oracle:thin:/@myService";
ods = OracleDataSource()
ods.setURL(url)
ocon = ods.getConnection()

结果:java.sql.SQLException: ORA-01017: invalid username/password; 登录被拒绝

  • 设置了 TNS_ADMIN 并且 tnsnames.ora 包含 myService 的定义
  • sqlnet.ora 包含 WALLET_LOCATION
  • 我可以使用以下命令连接到我的 Oracle 服务器:sqlplus /@myService

现在,如果我将这些属性添加到我的连接中:

walletProperties.put("user","oracle_user")
walletProperties.put("password","1234")
ods.setConnectionProperties(walletProperties)

连接正常.. JDBC 正确读取了 tnsnames.ora 中的“myService”。

我的感觉是没有使用属性“oracle.net.wallet_location”......

有人有解决这个谜题的线索吗?

非常感谢

4

0 回答 0