Oracle使用wallet实现无密码登录

Oracle使用wallet实现无密码登录

Oracle提供一种叫做wallet的概念,就是把密码存在wallet里面,然后登录的时候自动从wallet里面提取密码,而不需要每次从命令行输入密码。

这么做的好处是可以屏蔽脚本语言里面访问Oracle数据库的认证信息。

步骤

  1. 创建一个wallet
$ mkstore -wrl /path_to/mywallet -create

这一步里面需要输入wallet的口令,这个口令在修改wallet的时候会用到,包括后面的添加/删除/修改任何数据库连接信息,但是Oracle连接读取密码访问时不需要。

结果是在/path_to/mywallet目录下面生成两个文件:cwallet.sso ewallet.p12

  1. 增加一个数据库连接信息到wallet
$ mkstore -wrl /path_to/mywallet -createCredential myorcl scott tiger

其中参数:
myorcl:是Oracle数据库的连接标识,是一个定义在tnsnames.ora中的项。
scott/tiger: 当然就是用户名和密码了。

这一步需要输入前面创建wallet时设置的密码。

  1. 修改$ORACLE_HOME/network/admin/sqlnet.ora

添加如下两行:

WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path_to/mywallet)))
SQLNET.WALLET_OVERRIDE = TRUE
  1. 修改$ORACLE_HOME/network/admin/tnsnames.ora

定义数据库连接标识myorcl的属性:

myorcl = 
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.xxx.xxx.xxx)(PORT = 1521))
    (CONNECT_DATA=
      (SERVER = DEDICATED)
      (SERVICE_NAME=orcl)
    )
  )
  1. 测试sqlplus
$ sqlplus /@peppino

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 6 02:28:56 2019

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> 

不在需要密码了。

你可能感兴趣的:(Oracle使用wallet实现无密码登录)