【问题标题】:How to enable SSL in R to connect to Oracle JDBC如何在 R 中启用 SSL 以连接到 Oracle JDBC
【发布时间】:2020-04-07 01:41:38
【问题描述】:

我需要通过 R 连接到 Oracle DB,如何启用 SSL 连接 通常的连接是这样的:

> install.packages("RJDBC")
> library(RJDBC)
> drv <- JDBC("oracle.jdbc.driver.OracleDriver","/path/to/driver/com/oracle/oracle-thin/11.2.0.1.0/oracle-thin-11.2.0.1.0.jar”)
> conn <- dbConnect(drv, "jdbc:oracle:thin:@database:port:schema”, “user”, “passwd”)

在 Java 中,我可以设置环境属性以指定密钥库等以使 JDBC 通过 SSL 连接。 比如:

String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=servername)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=servicename)))"); 
Properties props = new Properties(); 
props.setProperty("user", "scott"); 
props.setProperty("password", "tiger"); 
props.setProperty("javax.net.ssl.trustStore", 
                  "/truststore/ewallet.p12"); 
props.setProperty("javax.net.ssl.trustStoreType","PKCS12"); 
props.setProperty("javax.net.ssl.trustStorePassword","welcome123"); 
Connection conn = DriverManager.getConnection(url, props); 

我如何在 R / R Studio 中进行等效操作?

如果可能的话,你能给出一个示例代码吗?

【问题讨论】:

    标签: r rjdbc


    【解决方案1】:

    我刚刚遇到了同样的问题。这对我有用:

    
    # install.packages("RJDBC")
    props <-  c("-Djavax.net.ssl.trustStore=C:\\windows\\path\\to\\truststore.jks",
                "-Djavax.net.ssl.trustStorePassword=changeit",
                "-Djavax.net.ssl.trustStoreType=jks",
                "-Doracle.net.ssl_version=1.2")
    
    options(java.parameters = props) 
    
    library(RJDBC)
    
    drv <- JDBC("oracle.jdbc.driver.OracleDriver","C:\\windows\\path\\to\\oracle\\driver\\ojdbc8-12.2.0.1.jar")
    
    url <- "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=servername) PORT=2494))(CONNECT_DATA=(SERVICE_NAME=servicename)))"
    
    conn <- dbConnect(drv, url, "user", "password")
    
    chk <- dbGetQuery(conn, "SELECT 5432 betterport FROM DUAL ") 
    
    chk
    
    

    创建信任库只是将 java keytool 与我的证书一起使用

    keytool.exe -import -file C:\path\to\cert\mycert.cer -alias mycert -keystore C:\windows\path\to\truststore.jks -storepass changeit
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 2012-12-21
      • 2023-03-06
      • 2019-05-05
      • 1970-01-01
      相关资源
      最近更新 更多