要使用钱包连接 Oracle DB,需要进行以下更改。
- 您需要创建一个钱包商店,还需要为钱包选择一个密码,并且在修改钱包时需要使用该密码。
<OracleClientHome>/bin/mkstore -wrl <Where you want to store your wallet> -create
e.g. C:\Oracle_11.2.0\product\client_1\bin\mkstore -wrl C:\Users\sample\app\wallet
-
您需要将 TNS 条目添加到tnsnames.ora
<OracleClientHome>/network/admin/tnsnames.ora
钱包连接字符串将使用相同的 TNS 条目名称。
<TNS_Entry_Name> =
(DESCRIPTION = (ADDRESS =
(PROTOCOL = TCP)(HOST = <Hostname>)(PORT = <Port_Number>))
(CONNECT_DATA = (SERVER = dedicated)(SERVICE_NAME = <Service_Name>))
)
e.g.
MY_FAVORITE_SERVER =
(DESCRIPTION = (ADDRESS =
(PROTOCOL = TCP)(HOST = myfavoriteserver.net)(PORT = 123))
(CONNECT_DATA = (SERVER = dedicated)(SERVICE_NAME = myfavoriteserver))
)
- 您需要使用凭据为上述 TNS 条目创建钱包条目。您还需要提供您在创建钱包时提供的钱包密码。
<OracleClientHome>/bin/mkstore -wrl <Where you want to store your wallet> -createCredential <TNS_Entry_Name/Wallet_Entry_name> <DB_Username> <DB_Password>
e.g.
C:\Oracle_11.2.0\product\client_1\bin\mkstore -wrl C:\Users\sample\app\wallet -createCredential MY_FAVORITE_SERVER john password123
- 您需要添加
sqlnet.ora
文件以将钱包位置和钱包覆盖标志更新为 true。
WALLET_LOCATION =
(SOURCE = (METHOD = FILE)
(METHOD_DATA = (DIRECTORY = <Where you want to store your wallet>))
)
SQLNET.WALLET_OVERRIDE = TRUE
e.g.
WALLET_LOCATION =
(SOURCE = (METHOD = FILE)
(METHOD_DATA = (DIRECTORY = C:\Users\sample\app\wallet))
)
SQLNET.WALLET_OVERRIDE = TRUE
- 使用钱包和Oracle客户端测试数据库连接,以确保钱包配置正确。
<OracleClientHome>/bin/sqlplus /nolog
SQL> connect <DB_Username>/<DB_Password>@<TNS_Entry_Name>
SQL> connect /@<TNS_Entry_Name>
e.g.
SQL> connect john/password123@MY_FAVORITE_SERVER
SQL> connect /@MY_FAVORITE_SERVER
- 您需要使 Java 应用程序准备好使用钱包并使用以下 JVM 参数运行 Java 程序。
<OracleClientHome>/jdbc/lib/ojdbc.jar
<OracleClientHome>/jlib/oraclepki.jar
<OracleClientHome>/jlib/osdt_cert.jar
<OracleClientHome>/jlib/osdt_core.jar
e.g.
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
更改应用程序配置精简网址以使用钱包:
jdbc:oracle:thin:/@<TNS_Entry_Name/Wallet_Entry_name>
e.g.
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>
e.g.
-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
e.g.
C:\Oracle_11.2.0\product\client_1\bin\mkstore -wrl C:\Users\sample\app\wallet -listCredential