使用Oracle的Security External Password Store功能实现无密(2)

在这种情况下,数据库证书、用户名和密码是安全地存储在创建的Oracle钱夹里,由于wallet的自动登录特性(auto login)是打开的,也就是说,一旦创建了wallet以后是自动打开的,所以不需要密码去打开wallet。在这个wallet里有证书,而用来连接数据库的用户名和密码的信息就保存在这个证书里。

接下来,我们就开始使用外部密码存储来配置Oracle的客户端。

1、先查看一下Oracle软件默认的wallet目录所在的位置和状态

使用Oracle的Security External Password Store功能实现无密

从上图可以看出,wallet的类型是以文件形式存在,而且默认的wallet就是位于$ORACLE_BASE/admin/$ORACLE_SID/wallet目录,状态为关闭。那么,我们再去相应的位置查看一下wallet目录是否存在,

使用Oracle的Security External Password Store功能实现无密

从上图可以得知,wallet目录不存在,因为我们从来没有创建过wallet,它的状态应该就是closed,所以我们在用mkstore命令(前面在说不能用owm创建wallet时提到过)创建wallet之前,必须先创建一个存在的wallet目录。这里为了安全起见,也为了防止将wallet目录误删除,我们不把wallet目录放在刚才用v$encryption_wallet视图查出的位置,即$ORACLE_BASE/admin/$ORACLE_SID下,而是放到$ORACLE_HOME/owm(因为$ORACLE_HOME是Oracle软件所在目录,而且我们也不允许去改动这里的目录和文件)。

下面进行创建wallet目录,

使用Oracle的Security External Password Store功能实现无密

2、在Oracle客户端开启external password store(外部密码存储)。

(1)使用mkstore命令先创建一个wallet,命令语法来自官方文档

使用Oracle的Security External Password Store功能实现无密

wallet_location参数指定为我们刚才创建的wallet目录

使用Oracle的Security External Password Store功能实现无密

上面提示,要给wallet输入一个密码(在wallet打开时需要输入,在创建完wallet以后,Oracle会自动打开),这里输入Oracle123(输入的密码不回显哦),再输入一遍(同样不回显,如果2次输入的不一样,Oracle会提示重新输入的)。

那么,我们到wallet目录下面查看一下是生成了什么文件。

使用Oracle的Security External Password Store功能实现无密

其中cwallet.sso文件是用于保存wallet是否自动登录的信息,ewallet.p12文件是用来保存相关的证书信息,而我们要使用的用户名和密码的信息就保存在证书里。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/acee12f7207dea067d666be94cff663b.html