Oracle从10gR2开始就提供了wallet,用于解决用户认证信息(用户名和密码)的存放问题,通过使用wallet可以实现无密码登录数据库,

这样一来就不需要在应用程序中嵌入数据库密码(或者在配置文件中明文存放密码),同时更加方便维护大量服务器的环境的数据库密码维护工作,

因为可以直接分发wallet文件,实现批量修改密码。

另外,如果我们在pl/sql中使用utl_http包访问需要用户名和密码的url时,也可以不用将用户名和密码嵌入代码中,而直接让其访问wallet中的认证信息,类似于

web容器中使用jndi的方式访问数据源

下面我们以windows 7 + oracle client 11.2.0.1.0环境为例,讲解具体使用方法。

注:使用oracle wallet只需安装oracle database client即可。

一、创建wallet

1、创建wallet

语法:mkstore -wrl <wallet_location> -create

D:\app\Oracle>mkstore -wrl . -create                   ---- wrl参数后跟wallet的存放路径,点表当前目录
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。

输入口令:                         ----------输入自定义的wallet密码,该密码是打开wallet的时候需要提供的密码,与数据库密码无关

再次输入口令:                  ----------确认自定义的wallet密码

D:\app\Oracle>dir .
 驱动器 D 中的卷没有标签。
 卷的序列号是 BA8C-3377

D:\app\Oracle 的目录

2015/11/17  21:55    <DIR>          .
2015/11/17  21:55    <DIR>          ..
2015/11/17  21:55             3,589 cwallet.sso    ---对应的wallet文件
2015/11/17  21:55             3,512 ewallet.p12   ---对应的wallet文件
2013/11/18  11:45    <DIR>          Middleware
               2 个文件          7,101 字节
               3 个目录 14,528,782,336 可用字节

更多命令信息请输入mkstore -help查看帮助

2、添加数据库连接认证信息到wallet中

语法:mkstore -wrl <wallet_location> -createCredential <db_connect_string> <username> <password>

D:\app\Oracle>mkstore -wrl . -createCredential 192.168.56.101_scott scott tiger    ---192.168.56.101_scott为tnsnames.ora中的tns名称,scott为用户名,tiger为密码
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。

输入 Wallet 口令:                  --输入第1步中创建wallet时提供的wallet密码

Create credential oracle.security.client.connect_string1

注意:这样一个tns名只能对应一个数据库用户,所以我们在名称上加了_scott后缀用于区分;如果用户名或者密码中有特殊字符,请用单引号引起来

如:mkstore -wrl /home/mseibt/pstore -createCredential 192.168.56.101_scott 'scott' tiger

3、修改sqlnet.ora

加入如下参数:

WALLET_LOCATION =
   (SOURCE =
      (METHOD = FILE)
      (METHOD_DATA = (DIRECTORY = D:\app\Oracle))    #第一步中创建wallet时的地址
)

SQLNET.WALLET_OVERRIDE = TRUE

4、测试无密码登录数据库

D:\app\Oracle>sqlplus /@192.168.56.101_scott

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 11月 17 22:25:21 2015

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> show user;
USER 为 "SCOTT"

测试通过。

注:现在使用pl/sql developer也可以不用输入用户名和密码登录了。

二、维护wallet

1、查看wallet中的认证信息

D:\app\Oracle>mkstore -wrl . -listCredential
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。输入 Wallet 口令:List credential (index: connect_string username)
1: 192.168.56.101_scott scott

2、修改wallet中的认证信息

D:\app\Oracle>mkstore -wrl . -modifyCredential 192.168.56.101_scott scott newpassword
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。输入 Wallet 口令:Modify credential
Modify 1

注意:只能修改用户名和密码,而不能修改db_connect_string,因为这里是把db_connect_string当作key

3、删除wallet中的认证信息

D:\app\Oracle>mkstore -wrl . -deleteCredential 192.168.56.101_scott
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。输入 Wallet 口令:Delete credential
Delete 1

4、查看wallet中的条目

D:\app\Oracle>mkstore -wrl . -list
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。输入 Wallet 口令:Oracle 密钥存储条目:
oracle.security.client.connect_string1
oracle.security.client.password1
oracle.security.client.username1

注意:因为我们目前只添加了一个连接信息,所以条目名都是xxxx1

5、查看wallet中条目的值

D:\app\Oracle>mkstore -wrl . -viewEntry oracle.security.client.connect_string1
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。输入 Wallet 口令:oracle.security.client.connect_string1 = 192.168.56.101_scott

6、修改wallet中条目的值

D:\app\Oracle>mkstore -wrl . -modifyEntry oracle.security.client.connect_string1 192.168.56.101_hr
Oracle Secret Store Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。输入 Wallet 口令:

注意:前面第2步中无法修改连接串的名称,使用本步中的方法就可以修改连接串的名称

三、wallet分发和备份

对于wallect的分发和备份就很简单了,直接从操作系统上拷贝wallect的两个文件即可。

同时问题又来了,如何防止本机的wallect文件被拷贝到其它机器上呢?

从11.2版本开始,wallect新增加了一个auto_login_local 参数,通过使用这个参数,就能解决这个问题。命令如下:

D:\app\Oracle1>orapki wallet create -wallet . -pwd "welcome1" -auto_login_local
Oracle PKI Tool: 版本 11.2.0.1.0 - Production
版权所有 (c) 2004, 2009, Oracle 和/或其子公司。保留所有权利。

注意:此时是使用的orakpi命令,而非mkstore命令。wallect创建好之后,维护操作就和上面的相同了。

在linux中,如果在使用的过程中抱ORA-12578: TNS:wallet open failed的错误,请检查/etc/hosts文件

确保按照如下格式配置

<IP> <HOSTNAME> [ <ALIAS> ]

且IP不能是集群环境的虚拟IP

全文完。




Oracle Databasae wallet使用指南相关推荐

  1. oracle中dlink使用,Oracle,MetaLink,中文使用指南

    Oracle MetaLink中文使用指南 出版日期:2003年8月 简介 本文概述并解释了如何运用Oracle 的支持服务(简称OSS)进行有效的工作,以及如何利用OSS 所提供的工具和流程使投资回 ...

  2. oracle上移下移置顶,[置顶]       阅读Oracle官方文档指南

    [置顶]       阅读Oracle官方文档指南 还在整理中.... EXPDP/IMPDP 相关文档:Utilities 2 Data Pump Export 3 Data Pump Import ...

  3. oracle数据库的相关认证,全新Oracle数据库认证认证指南

    原标题:全新Oracle数据库认证认证指南 关注我们 除了数据库管理员之外,Oracle数据库认证和培训学习路径还能够帮助许多新的职业角色走向成功.如果您选择数据库管理员开始您的职业生涯,那么您面对的 ...

  4. PLSQL Developer 配置Oracle主目录和OCI库 连接登录Oracle数据库(完全指南)

    文章目录 PLSQL Developer 配置Oracle主目录和OCI库 & 连接登录Oracle数据库(完全指南) (一)场景1:PLSQL Developer 连接本地Oracle数据库 ...

  5. 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.2 安装数据库软件)...

    当前关于12c的中文资料比较少,本人将关于DBA的一部分官方文档翻译为中文,很多地方为了帮助中国网友看懂文章,没有按照原文句式翻译,翻译不足之处难免,望多多指正. 2.2 安装数据库软件 这部分简短讲 ...

  6. oracle wallet java_使用Oracle客户端wallet实现匿名登录

    我们无论是通过Oracle客户端的各种工具.还是应用系统链接数据库,链接用户名和密码都是不可缺少的验证环节.这些敏感信息的保存方式其实一直是一个比较纠结的问题,最常用的方法就是通过硬编码或者配置文件保 ...

  7. oracle的wallet是什么意思,Oracle钱夹的使用{今日wallet失败 明天继续吧}

    为了安全起见,有时想对敏感数据加密,对其进行编码以保证授权用户才能理解它.可以使用的TDE(Transparent Data Encryption,透明数据加密)特性.使用Oracle钱夹存储密匙,数 ...

  8. oracle的wallet是什么意思,oracleWallet的使用

    oracle227.2 oracle Wallet的使用 oracle Wallet的使用(即内部加密技术TDE(Transparent Data Encryption )) 1. TDE是Oracl ...

  9. oracle的wallet是什么意思,wallet是什么意思?

    原创wallet是什么意思? 编辑:小葫芦 来源:PC下载网时间:2018-06-04 11:54:14 wallet是苹果手机中很常见的一个应用,那么wallet到底是什么意思呢? 1.想必使用苹果 ...

最新文章

  1. windows安装TortoiseGit详细使用教程【基础篇】
  2. 深入Atlas系列:探究Application Services(2) - 自定义服务器端Profile Service支持
  3. 学习笔记之-php编码技巧
  4. mysqlnavicat数据库备份与恢复_Navicat如何还原MySQL数据库
  5. 运动后肌肉酸痛怎么办?
  6. 使用游标正确提取SQL Server数据并将其放置在Reporting Services矩阵中
  7. android textview adapter,Android在FragmentPagerAdapter中的Fragment中设置TextView文本
  8. git不同的平台配置不同的公钥秘钥(git配置多个公钥秘钥)(git不同的项目配置不同的公钥秘钥)
  9. T-SQL 之 DDL语法
  10. SylixOS allwinner h6 链接脚本
  11. linux没有启用的仓库_在RHEL/CentOS 4-6中安装并启用RPMForge仓库
  12. CCNode作为容器实现显示区域剪裁
  13. Silverlight 离线安装包
  14. Stackelberg 博弈模型求解
  15. 最全的Java多线程面试题
  16. 关于新正方教务系统(湖北工程学院)的one day越权漏洞的说明
  17. 分布式WLAN全双工链路加权调度算法
  18. 2021年重庆高考成绩分数段查询,2021重庆高考总成绩一分一段表出炉
  19. Qt事件耦合器实现(类似C#的Prism中的事件耦合器)
  20. Win7系统打印机不能打印的问题

热门文章

  1. 第7章第29节:四图排版:四张图片并列排版 [PowerPoint精美幻灯片实战教程]
  2. 如何找回电脑回收站删除的文件, 10种恢复工具方法!
  3. webpack出现CssSyntaxError
  4. WINCE6.0去掉桌面快捷方式
  5. GIS基本功 | 14 地图投影及其相关概念
  6. 赛元科技EasyCodeCube的使用——Keil环境的配置
  7. 高通华裔工程师跳楼自杀!中年IT男,为何这么难?
  8. 【Pytorch】AlexNet图像分类实战
  9. 广西交通职业技术学院计算机专业在哪个校区,广西交通职业技术学院宿舍怎么样...
  10. 【设计模式】五:依赖倒置与里氏代换原则