Oracle使用wallet实现无密码登录
Oracle提供一种叫做wallet的概念,就是把密码存在wallet里面,然后登录的时候自动从wallet里面提取密码,而不需要每次从命令行输入密码。
这么做的好处是可以屏蔽脚本语言里面访问Oracle数据库的认证信息。
步骤
- 创建一个wallet
$ mkstore -wrl /path_to/mywallet -create
这一步里面需要输入wallet的口令,这个口令在修改wallet的时候会用到,包括后面的添加/删除/修改任何数据库连接信息,但是Oracle连接读取密码访问时不需要。
结果是在/path_to/mywallet目录下面生成两个文件:cwallet.sso ewallet.p12
- 增加一个数据库连接信息到wallet
$ mkstore -wrl /path_to/mywallet -createCredential myorcl scott tiger
其中参数:
myorcl:是Oracle数据库的连接标识,是一个定义在tnsnames.ora中的项。
scott/tiger: 当然就是用户名和密码了。
这一步需要输入前面创建wallet时设置的密码。
- 修改$ORACLE_HOME/network/admin/sqlnet.ora
添加如下两行:
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path_to/mywallet)))
SQLNET.WALLET_OVERRIDE = TRUE
- 修改$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)
)
)
- 测试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>
不在需要密码了。
转载于:https://www.jianshu.com/p/2cd2df5f55d6