如何使用oracle钱包

use*_*962 4 oracle

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

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

$ 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
Run Code Online (Sandbox Code Playgroud)

创建没有给出任何错误,但是当我尝试列出凭据时,我什么也没得到。

$ mkstore -wrl -listCredential

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

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

Jos*_*rge 8

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

  1. 你需要创建一个钱包商店,你还需要为钱包选择一个密码,修改钱包时需要使用这个密码

    • OracleClientHome /斌/ mkstore -wrl哪里要存储你的钱包-创建

    例如C:\Oracle_11.2.0\product\client_1\bin\mkstore -wrl C:\Users\sample\app\wallet

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

    • TNS_Entry_Name =(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= Hostname )(PORT= Port_Number ))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME= Service_Name )))

    例如C:\Oracle_11.2.0\product\client_1\network\admin\tnsnames.ora

    • SAMPLEDB_RO=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= HostName )(PORT= PortNumber ))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=samplesrv)))
  3. 您需要使用凭据为上述 tns 条目创建钱包条目,您还需要提供您在创建钱包时提供的钱包密码。

    • OracleClientHome /bin/mkstore -wrl钱包存放位置-createCredential TNS_Entry_Name/Wallet_Entry_name DB_Username DB_Password

    例如C:\Oracle_11.2.0\product\client_1\bin\mkstore -wrl C:\Users\sample\app\wallet -createCredential SAMPLEDB_RO 示例示例

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

    • WALLET_LOCATION =(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=你想存放钱包的地方)))
    • SQLNET.WALLET_OVERRIDE = TRUE

    例如

    • WALLET_LOCATION =(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=C:\Users\sample\app\wallet)))
    • SQLNET.WALLET_OVERRIDE = TRUE
  5. 使用钱包和oracle客户端测试数据库连接以确保钱包配置正确

    • OracleClientHome /bin/sqlplus /nolog

    • 连接DB_Username / DB_Password @ TNS_Entry_Name

    • 连接 //@ TNS_Entry_Name

    例如

    • 连接样品/样品@SAMPLEDB_RO
    • 连接 /@SAMPLEDB_RO
  6. 您需要使 Java 应用程序准备好使用钱包并使用以下 JVM 参数运行 Java 程序

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

    • 例如

    • C:\Oracle_11.2.0\product\client_1\jdbc\lib\ojdbc.jar
    • C:\Oracle_11.2.0\product\client_1\jlib\oraclepki.jar
    • C:\Oracle_11.2.0\product\client_1\jlib\osdt_cert.jar
    • C:\Oracle_11.2.0\product\client_1\jlib\osdt_core.jar

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

    • jdbc:oracle:thin:/@ TNS_Entry_Name/Wallet_Entry_name

    • 例如

    • jdbc:oracle:thin:/@SAMPLEDB_RO

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

    • -Doracle.net.tns_admin= OracleClientHome /network/admin -Doracle.net.wallet_location=您想要存放钱包的位置

    • 例如-Doracle.net.tns_admin=C:\Oracle_11.2.0\product\client_1\network\admin -Doracle.net.wallet_location=C:\Users\sample\app\wallet

    你都准备好了!!

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

    • 例如C:\Oracle_11.2.0\product\client_1\bin\mkstore -wrl C:\Users\sample\app\wallet -listCredential