如何使用oracle钱包

如何使用oracle钱包,oracle,Oracle,我正在尝试将密码存储在Oracle钱包文件中,我将从代码中检索并使用该文件 我尝试创建一个钱包并在那里保存凭证:- $ mkstore -wrl <wallet_location> -createCredential sid scott tiger Oracle Secret Store Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserve

我正在尝试将密码存储在Oracle钱包文件中,我将从代码中检索并使用该文件

我尝试创建一个钱包并在那里保存凭证:-

$ mkstore -wrl <wallet_location> -createCredential sid scott tiger

Oracle Secret Store Tool : Version 12.1.0.2
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

Enter wallet password:   
Create credential oracle.security.client.connect_string1

此外,如何使用java检索此密码?

以使用wallet连接Oracle DB需要进行以下更改

  • 您需要创建钱包商店,还需要为钱包选择密码,并且在修改钱包时需要使用此密码

    • OracleClientHome/bin/mkstore-wrl您想将钱包存放在哪里的位置-创建
    例如C:\Oracle\u 11.2.0\product\client\u 1\bin\mkstore-wrl C:\Users\sample\app\wallet

  • 您需要在tnsnames.ora(OracleClientHome/network/admin/tnsnames.ora)中添加tns条目,相同的tns条目名称将用于我们的钱包连接字符串

    • TNS\u Entry\u Name=(描述=(地址=(协议=TCP)(主机=主机名)(端口=端口号)(连接数据=(服务器=专用)(服务名称=服务名称
    例如C:\Oracle\u 11.2.0\product\client\u 1\network\admin\tnsnames.ora

    • SAMPLEDB_RO=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=主机名)(PORT=端口号)(CONNECT_DATA=(SERVER=专用)(SERVICE_NAME=samplesrv)))
  • 您需要使用凭据为上述tns条目创建钱包条目,还需要提供您在创建钱包时提供的钱包密码

    • OracleClientHome/bin/mkstore-wrl您想将钱包存放在哪里-createCredentialTNS\u Entry\u Name/wallet\u Entry\u NameDB\u用户名DB\u密码
    例如C:\Oracle\u 11.2.0\product\client\u 1\bin\mkstore-wrl C:\Users\sample\app\wallet-createCredential SAMPLEDB\u RO sample

  • 您需要添加sqlnet.ora文件以将钱包位置和钱包覆盖标志更新为true

    • 钱包位置=(源=(方法=文件)(方法数据=(目录=您想将钱包存放在哪里)
    • SQLNET.WALLET\u OVERRIDE=TRUE
    例如

    • 钱包\位置=(源=(方法=文件)(方法\数据=(目录=C:\Users\sample\app\WALLET)))
    • SQLNET.WALLET\u OVERRIDE=TRUE
  • 使用wallet和oracle客户端测试db连接,以确保wallet配置正确

    • OracleClientHome/bin/sqlplus/nolog

    • 连接DB\u用户名/DB\u密码@TNS\u条目名称

    • connect/@TNS\u条目\u名称
    例如

    • 连接样本/sample@SAMPLEDB_RO
    • 连接/@SAMPLEDB\u RO
  • 您需要使java应用程序准备好使用钱包,并使用以下JVM参数运行java程序

    • 将以下JAR添加到应用程序类路径
    • OracleClientHome/jdbc/lib/ojdbc.jar
    • OracleClientHome/jlib/oraclepki.jar
    • OracleClientHome/jlib/osdt_cert.jar
    • OracleClientHome/jlib/osdt_core.jar

    • 例如

    • C:\Oracle\u 11.2.0\product\client\u 1\jdbc\lib\ojdbc.jar
    • C:\Oracle\u 11.2.0\product\client\u 1\jlib\oraclepki.jar
    • C:\Oracle\u 11.2.0\product\client\u 1\jlib\osdt\u cert.jar
    • C:\Oracle\u 11.2.0\product\client\u 1\jlib\osdt\u core.jar

    • 更改应用程序配置精简url以使用钱包

    • jdbc:oracle:thin://TNS\u Entry\u Name/Wallet\u Entry\u Name

    • 例如

    • jdbc:oracle:thin:/@SAMPLEDB\u RO

    • 还添加以下属性作为JVM参数,这有助于库查找oracle钱包

    • -Doracle.net.tns_admin=OracleClientHome/network/admin-Doracle.net.wallet_location=您想将钱包存放在哪里

    • 例如-Doracle.net.tns\u admin=C:\Oracle\u 11.2.0\product\client\u 1\network\admin-Doracle.net.wallet\u location=C:\Users\sample\app\wallet

    你们都准备好了

    • 要列出钱包中的现有凭据,您可以使用以下命令,但需要提供创建钱包时提供的钱包密码
    • OracleClientHome/bin/mkstore-wrl您想将钱包存放在哪里的位置-listCredential

    • 例如C:\Oracle\u 11.2.0\product\client\u 1\bin\mkstore-wrl C:\Users\sample\app\wallet-listCredential


  • 必须记住的一点是,为
    createCredential
    命令选择的别名必须与用于连接的URL相同

    当您的JDBC连接字符串看起来像
    JDBC:oracle:thin://@dbsrv:1521/orcl
    时,必须使用以下命令

    mkstore -wlr /foobar -createCredential dbsrv:1521/orcl USER PASSWORD
    

    我找到了第一部分的答案:-这正是我想要的!作为奖励,我看到它是由一个熟悉的人写的。希望你做得很好,谢谢你的帮助:)
    mkstore -wlr /foobar -createCredential dbsrv:1521/orcl USER PASSWORD