Oracle Databasae wallet使用指南

原创 2015年11月17日 22:47:23

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 wallet使用与维护---oracle无密码登录

author:skate time:2012/07/24   oracle wallet使用与维护   从Oracle10gR2开始, 通过使用Oracle Wallet达到任意用户不使用密...
  • wyzxg
  • wyzxg
  • 2012年07月24日 19:54
  • 9880

Oracle wallet 配置 说明

一.官网对Wallet的说明http://docs.oracle.com/cd/E11882_01/network.112/e10746/asowalet.htm Security administr...

oracle wallet使用与维护

oracle wallet使用与维护---oracle无密码登录 分类: Oracle Management2012-07-24 19:54 3111人阅读 评论(1) 收藏 举报 ...
  • sanjiva
  • sanjiva
  • 2015年05月26日 17:58
  • 746

Oracle Wallet 的初步使用和维护

Oracle10gR2 中 Oracle Wallet 的初步使用和维护 1) Wallet作用 从Oracle10gR2开始, 通过使用Oracle Wallet达到...

oracle Wallet的使用

摘自:http://www.2cto.com/database/201107/97945.html oracle Wallet的使用(即内部加密技术TDE(Transparent Data En...

Oracle数据库使用指南

  • 2014年11月04日 15:56
  • 15.37MB
  • 下载

iReport使用指南(有示例)

在使用ireport的过程中,因为各种功能都要百度,但是大家使用的例子又千差万别让人很苦恼,所以用一个简单例子贯穿的展示一下ireport的常见功能。 我使用的是iReport 3.5.1,使用的示...
  • GGdido
  • GGdido
  • 2016年04月15日 16:53
  • 2606

ORACLE.DEVELOPER使用指南

  • 2012年12月12日 16:27
  • 43.54MB
  • 下载

Oracle Developer使用指南

  • 2006年02月23日 15:31
  • 14.42MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle Databasae wallet使用指南
举报原因:
原因补充:

(最多只允许输入30个字)