ORACLE wallet实现无需输入用户名与密码登陆数据库

在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文件,增加下面几行

复制代码
  1. HTZDG =
  2. (DESCRIPTION =
  3. (ADDRESS_LIST =
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.30)(PORT = 1521))
  5. )
  6. (CONNECT_DATA =
  7. (SERVER = DEDICATED)
  8. (SERVICE_NAME = htzdg)
  9. )
  10. )

测试是否可以正常解析

复制代码
  1. C:\Users\luoping>tnsping htzdg
  2. TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 29-8月 -
  3. 2012 21:40:40
  4. Copyright (c) 1997, 2010, Oracle. All rights reserved.
  5. 已使用的参数文件:
  6. D:\app\luoping\product\11.2.0\client_1\network\admin\sqlnet.ora
  7. 已使用 TNSNAMES 适配器来解析别名
  8. 尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.1
  9. 68.100.30)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = h
  10. tzdg)))
  11. OK (40 毫秒)
  12. C:\Users\luoping>

下面是开始配置wallet

1,创建一个wallet

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\11.2.0\client_1\pstore -create
  2. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  3. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  4. 输入口令:
  5. 再次输入口令:
  6. D:\app\luoping\product\11.2.0\client_1\BIN>cd ../
  7. D:\app\luoping\product\11.2.0\client_1>cd pstore
  8. D:\app\luoping\product\11.2.0\client_1\pstore>dir
  9. 驱动器 D 中的卷是 DATA
  10. 卷的序列号是 D60C-09BD
  11. D:\app\luoping\product\11.2.0\client_1\pstore 的目录
  12. 2012/08/29 15:39 <DIR> .
  13. 2012/08/29 15:39 <DIR> ..
  14. 2012/08/29 15:39 3,589 cwallet.sso
  15. 2012/08/29 15:39 3,512 ewallet.p12
  16. 2 个文件 7,101 字节
  17. 2 个目录 368,717,893,632 可用字节

2,启动wallet与指定wallet位置

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\network\admin>more sqlnet.ora
  2. sqlnet.ora Network Configuration File: D:\app\luoping\product\11.2.0\client_1\

  3. network\admin\sqlnet.ora
  4. Generated by Oracle configuration tools.

  5. This file is actually generated by netca. But if customers choose to

  6. install "Software Only", this file wont exist and without the native

  7. authentication, they will not be able to connect to the database on NT.

  8. SQLNET.AUTHENTICATION_SERVICES= (NTS)
  9. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
  10. WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:\app\luoping\product\11.2.0\client_1\pstore)))
  11. SQLNET.WALLET_OVERRIDE=TRUE

3,增加需要登陆的网络服务名,用户,密码到wallet中

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\1
  2. 1.2.0\client_1\pstore -createCredential htzdg sys oracle
  3. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  4. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  5. 输入 Wallet 口令:
  6. Create credential oracle.security.client.connect_string1

4,测试是否成功

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
  2. SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:48:27 2012
  3. Copyright (c) 1982, 2010, Oracle. All rights reserved.
  4. 连接到:
  5. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  7. SQL>

5,查看wallet中配置的网络服务名

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl d:\app\luoping\product\1
  2. 1.2.0\client_1\pstore -listCredential
  3. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  4. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  5. 输入 Wallet 口令:
  6. List credential (index: connect_string username)
  7. 1: htzdg sys

6,一个网络服务名,只能对应一个用户,如果相同的数据库有多少用户需要在同一个client通过wallet实现时,我们需要每一个用户,创建一个网络服务名。

下面是测试一个网络服务名,相增加两个用户时,报错。

复制代码
  1. C:\Users\luoping>mkstore -wrl D:\app\luoping\product\11.2.0\client_1\pstore -cre
  2. ateCredential htzdg scott oracle
  3. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  4. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  5. 输入 Wallet 口令:
  6. Create credential 出现密钥存储错误: oracle.security.pki.OracleSecretStoreExcepti
  7. on: Credential already exists

7,当密码修改后,要手动更新wallet中相应的密码。不然要报错的。

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
  2. SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:45:56 2012
  3. Copyright (c) 1982, 2010, Oracle. All rights reserved.
  4. 连接到:
  5. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  7. SQL>
  8. SQL> alter user sys identified by htz;
  9. 用户已更改。
  10. SQL> exit
  11. 从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
  12. With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
  13. D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
  14. SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:46:25 2012
  15. Copyright (c) 1982, 2010, Oracle. All rights reserved.
  16. ERROR:
  17. ORA-01017: invalid username/password; logon denied
  18. 请输入用户名:
  19. D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\1
  20. 1.2.0\client_1\pstore -modifyCredential htzdg sys
  21. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  22. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  23. 命令行中缺少您的密钥/口令
  24. 请输入您的密钥/口令:
  25. 请重新输入您的密钥/口令:
  26. 输入 Wallet 口令:
  27. Modify credential
  28. Modify 1
  29. D:\app\luoping\product\11.2.0\client_1\BIN>
  30. D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl D:\app\luoping\product\1
  31. 1.2.0\client_1\pstore -modifyCredential htzdg sys
  32. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  33. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  34. 命令行中缺少您的密钥/口令
  35. 请输入您的密钥/口令:
  36. 请重新输入您的密钥/口令:
  37. 输入 Wallet 口令:
  38. Modify credential
  39. Modify 1
  40. D:\app\luoping\product\11.2.0\client_1\BIN>
  41. D:\app\luoping\product\11.2.0\client_1\BIN>sqlplus /@htzdg as sysdba
  42. SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 29 17:48:27 2012
  43. Copyright (c) 1982, 2010, Oracle. All rights reserved.
  44. 连接到:
  45. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
  46. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  47. SQL>

8,手动删除wallet中的记录

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\BIN>mkstore -wrl d:\app\luoping\product\1
  2. 1.2.0\client_1\pstore -deleteCredential htzdg
  3. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  4. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  5. 输入 Wallet 口令:
  6. Delete credential
  7. Delete 1

9,mkstore命令帮忙手册

复制代码
  1. D:\app\luoping\product\11.2.0\client_1\BIN>mkstore
  2. Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
  3. 版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。
  4. mkstore -wrl wrl -create -createSSO -createLSSO -createALO -delete [
  5. -deleteSSO] -list -createEntry alias secret -viewEntry alias [-modifyEntry
  6. alias secret] -deleteEntry alias [-createCredential connect_string username p
  7. assword] -listCredential -modifyCredential connect_string username password
  8. -deleteCredential connect_string\] \[-help\] \[-nologo

相关推荐
这个DBA有点耶6 小时前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G6 小时前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备6 小时前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远6 小时前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
2601_962218618 小时前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren8 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安9 小时前
MySQL-触发器
数据库·mysql
白远山9 小时前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro9 小时前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理
2603_965148119 小时前
AI+API选品:下一代智能商务助手雏形已现
java·大数据·数据库·人工智能·数据挖掘