首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle与PKI

Oracle与PKI
EN

Stack Overflow用户
提问于 2018-02-24 20:04:42
回答 1查看 581关注 0票数 1

我正在尝试使用PKI连接到Oracle。我点击这个链接

http://www.oracle.com/technetwork/topics/wp-oracle-jdbc-thin-ssl-130128.pdf

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String addr = "DESKTOP-BH1RKUF";
    String service = "orcl";
    String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=" + addr + ")(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=" + service + ")))";
    Properties props = new Properties();
    // props.setProperty("user", "sys as sysdba");
    // props.setProperty("password", "password");
    props.setProperty("javax.net.ssl.keyStore", "/Users/user/Downloads/client/keystore.jks");
    props.setProperty("javax.net.ssl.keyStoreType", "JKS");

    props.setProperty("javax.net.ssl.trustStore", "/Users/user/Downloads/client/truststore.jks");
    props.setProperty("javax.net.ssl.trustStoreType", "JKS");
    props.setProperty("oracle.net.authentication_services", "(TCPS)");
    props.setProperty("oracle.net.ssl_version", "1.0");
    props.setProperty("javax.net.ssl.keyStorePassword", "Passw0rd");
    props.setProperty("javax.net.ssl.trustStorePassword", "Passw0rd");


    try (Connection conn = DriverManager.getConnection(url, props)) {
       System.out.println(conn.getClass());
    }
}

我收到此错误: ORA-01017:用户名/密码无效;登录被拒绝

代码语言:javascript
复制
Exception in thread "main" java.sql.SQLException: ORA-01017: invalid 
username/password; logon denied
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:461)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:394)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:386)
at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1121)
at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:502)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:541)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:264)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:435)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1020)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:707)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:755)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:38)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:599)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.xyz.oracle.jdbc.pool.Test.main(Test.java:29)

请参阅完整日志:https://uploadfiles.io/qv4zg

如果我设置了用户名和密码,它就能正常工作。

EN

回答 1

Stack Overflow用户

发布于 2018-02-26 22:06:55

如果您正在尝试遵循您提到的白皮书的案例#4,例如“使用SSL作为数据库中的身份验证服务”,然后必须执行所有步骤,包括"create user sslclient identified externally as 'CN=client_test,C=US';“。这个特定的数据库用户没有任何密码。使用此用户进行连接的唯一方法是提供客户端上具有正确可分辨名称的有效证书。我猜您没有这样做,因为您提到,如果您提供用户和密码,它就可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48962653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档