在Oracle 10G前,我們在SHELL或JDBC中串連資料庫時,都需要輸入使用者名稱與密碼,並且都是明文。從1OGR2開始,ORACLE提供wallet這個工具,可以實現無需輸入使用者名稱與密碼就可以登陸資料庫,如下:
一般情況:sqlplus scott/oracle@htzdg
用wallet後:sqlplus /@htzdg
測試環境:
server :solaris 10,oracle 11gr2
client :win 7,oracle11gr2
登陸端配置tnsnames.ora檔案,增加下面幾行
- HTZDG =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.30)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = htzdg)
- )
- )
測試是否可以正常解析
- C:\Users\luoping>tnsping htzdg
-
- TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 29-8月 -
- 2012 21:40:40
-
- Copyright (c) 1997, 2010, Oracle. All rights reserved.
-
- 已使用的參數檔案:
- D:\app\luoping\product\11.2.0\client_1\network\admin\sqlnet.ora
-
-
- 已使用 TNSNAMES 適配器來解析別名
- 嘗試串連 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.1
- 68.100.30)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = h
- tzdg)))
- OK (40 毫秒)
-
- C:\Users\luoping>
下面是開始配置wallet
1,建立一個wallet
- D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\11.2.0\client_1\pstore -create
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
- 輸入口令:
- 再次輸入口令:
- D:\app\luoping\product\11.2.0\client_1\BIN>cd ../
- D:\app\luoping\product\11.2.0\client_1>cd pstore
- D:\app\luoping\product\11.2.0\client_1\pstore>dir
- 磁碟機 D 中的卷是 DATA
- 卷的序號是 D60C-09BD
- D:\app\luoping\product\11.2.0\client_1\pstore 的目錄
- 2012/08/29 15:39 <DIR> .
- 2012/08/29 15:39 <DIR> ..
- 2012/08/29 15:39 3,589 cwallet.sso
- 2012/08/29 15:39 3,512 ewallet.p12
- 2 個檔案 7,101 位元組
- 2 個目錄 368,717,893,632 可用位元組
2,啟動wallet與指定wallet位置
- D:\app\luoping\product\11.2.0\client_1\network\admin>more sqlnet.ora
- # sqlnet.ora Network Configuration File: D:\app\luoping\product\11.2.0\client_1\
- network\admin\sqlnet.ora
- # Generated by Oracle configuration tools.
-
- # This file is actually generated by netca. But if customers choose to
- # install "Software Only", this file wont exist and without the native
- # authentication, they will not be able to connect to the database on NT.
-
- SQLNET.AUTHENTICATION_SERVICES= (NTS)
-
- NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
- WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:\app\luoping\product\11.2.0\client_1\pstore)))
- SQLNET.WALLET_OVERRIDE=TRUE
3,增加需要登陸的網路服務名,使用者,密碼到wallet中
- D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\1
- 1.2.0\client_1\pstore -createCredential htzdg sys oracle
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
-
- 輸入 Wallet 口令:
-
- Create credential oracle.security.client.connect_string1
4,測試是否成功
- D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
-
- SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:48:27 2012
-
- Copyright (c) 1982, 2010, Oracle. All rights reserved.
-
-
- 串連到:
- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
-
- SQL>
5,查看wallet中配置的網路服務名
- D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl d:\app\luoping\product\1
- 1.2.0\client_1\pstore -listCredential
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
-
- 輸入 Wallet 口令:
-
- List credential (index: connect_string username)
- 1: htzdg sys
6,一個網路服務名,只能對應一個使用者,如果相同的資料庫有多少使用者需要在同一個client通過wallet實現時,我們需要每一個使用者,建立一個網路服務名。
下面是測試一個網路服務名,相增加兩個使用者時,報錯。
- C:\Users\luoping>mkstore -wrl D:\app\luoping\product\11.2.0\client_1\pstore -cre
- ateCredential htzdg scott oracle
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
-
- 輸入 Wallet 口令:
-
- Create credential 出現金鑰儲存區錯誤: oracle.security.pki.OracleSecretStoreExcepti
- on: Credential already exists
7,當密碼修改後,要手動更新wallet中相應的密碼。不然要報錯的。
- D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
-
- SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:45:56 2012
-
- Copyright (c) 1982, 2010, Oracle. All rights reserved.
-
-
- 串連到:
- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
-
- SQL>
- SQL> alter user sys identified by htz;
-
- 使用者已更改。
-
- SQL> exit
- 從 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷
- 開
-
- D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
-
- SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:46:25 2012
-
- Copyright (c) 1982, 2010, Oracle. All rights reserved.
-
- ERROR:
- ORA-01017: invalid username/password; logon denied
-
-
- 請輸入使用者名稱:
-
- D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\1
- 1.2.0\client_1\pstore -modifyCredential htzdg sys
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
-
- 命令列中缺少您的密鑰/口令
- 請輸入您的密鑰/口令:
-
- 請重新輸入您的密鑰/口令:
-
- 輸入 Wallet 口令:
-
- Modify credential
- Modify 1
-
- D:\app\luoping\product\11.2.0\client_1\BIN>
-
- D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\1
- 1.2.0\client_1\pstore -modifyCredential htzdg sys
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
-
- 命令列中缺少您的密鑰/口令
- 請輸入您的密鑰/口令:
-
- 請重新輸入您的密鑰/口令:
-
- 輸入 Wallet 口令:
-
- Modify credential
- Modify 1
-
- D:\app\luoping\product\11.2.0\client_1\BIN>
- D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
-
- SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:48:27 2012
-
- Copyright (c) 1982, 2010, Oracle. All rights reserved.
-
-
- 串連到:
- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
-
- SQL>
8,手動刪除wallet中的記錄
- D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl d:\app\luoping\product\1
- 1.2.0\client_1\pstore -deleteCredential htzdg
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
-
- 輸入 Wallet 口令:
-
- Delete credential
- Delete 1
9,mkstore命令幫忙手冊
- D:\app\luoping\product\11.2.0\client_1\BIN>mkstore
- Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
- 著作權 (c) 2004, 2009, Oracle 和/或其子公司。著作權所有,並保留一切權利。
-
- mkstore [-wrl wrl] [-create] [-createSSO] [-createLSSO] [-createALO] [-delete] [
- -deleteSSO] [-list] [-createEntry alias secret] [-viewEntry alias] [-modifyEntry
- alias secret] [-deleteEntry alias] [-createCredential connect_string username p
- assword] [-listCredential] [-modifyCredential connect_string username password]
- [-deleteCredential connect_string] [-help] [-nologo]