如何使用Oracle钱包

azpvetkf  于 2023-10-16  发布在  Oracle
关注(0)|答案(2)|浏览(184)

我试图将密码存储在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

创建不会给给予任何错误,但当我试图列出凭据,我没有得到任何东西。

$ mkstore -wrl -listCredential

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

如何使用java找回密码?

s71maibg

s71maibg1#

要使用Wallet连接Oracle DB,需要进行以下更改。
1.您需要创建一个钱包存储,还需要为钱包选择密码,并且在修改钱包时需要使用此密码。
<OracleClientHome>/bin/mkstore -wrl <Where you want to store your wallet> -create

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

1.您需要在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>))
  )

例如

MY_FAVORITE_SERVER =
  (DESCRIPTION = (ADDRESS =
    (PROTOCOL = TCP)(HOST = myfavoriteserver.net)(PORT = 123)) 
  (CONNECT_DATA = (SERVER = dedicated)(SERVICE_NAME = myfavoriteserver))
  )

1.您需要使用凭据为上述TNS条目创建钱包条目。您还需要提供您在创建钱包时提供的钱包密码。

<OracleClientHome>/bin/mkstore -wrl <Where you want to store your wallet> -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 MY_FAVORITE_SERVER john password123

1.您需要添加sqlnet.ora文件来更新wallet位置和wallet覆盖标志为true。

WALLET_LOCATION = 
  (SOURCE = (METHOD = FILE)
    (METHOD_DATA = (DIRECTORY = <Where you want to store your wallet>))
  )

SQLNET.WALLET_OVERRIDE = TRUE

例如

WALLET_LOCATION = 
  (SOURCE = (METHOD = FILE)
    (METHOD_DATA = (DIRECTORY = C:\Users\sample\app\wallet))
  )

SQLNET.WALLET_OVERRIDE = TRUE

1.使用钱包和Oracle客户端测试数据库连接,以确保钱包配置正确。

<OracleClientHome>/bin/sqlplus /nolog
SQL> connect <DB_Username>/<DB_Password>@<TNS_Entry_Name>
SQL> connect /@<TNS_Entry_Name>

例如

SQL> connect /@MY_FAVORITE_SERVER

1.您需要使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_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:/@MY_FAVORITE_SERVER
  • 同时添加以下属性作为JVM参数,这有助于库查找Oracle钱包
-Doracle.net.tns_admin=<OracleClientHome>/network/admin -Doracle.net.wallet_location=<Where you want to store your wallet>

例如

-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 <Where you want to store your wallet> -listCredential

例如

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

wmomyfyw2#

您必须记住的一件重要事情是,您为createCredential命令选择的别名必须与您用于连接的URL相同。
当JDBC连接字符串看起来像jdbc:oracle:thin:/@dbsrv:1521/orcl时,必须使用命令

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

相关问题