Oracle 10g R2 中 Oracle Wallet 的初步使用和维护

2014-11-24 18:23:52 · 作者: · 浏览: 0

1) Wallet作用


本例是让u_test用户无需使用密码登录系统, mkstore用法如下:


$ $ORACLE_HOME/bin/mkstore


mkstore [-wrl wrl] [-create] [-createSSO] [-delete] [-deleteSSO] [-list] [-createEntry alias secret] [-viewEntry alias] [-modifyEntry alias secret] [-deleteEntry alias] [-help]






2) 创建Wallet, 存放于某目录下


$ $ORACLE_HOME/bin/mkstore -wrl $ORACLE_HOME/network/admin/wallet -create


Enter password:<输入钱包密码>


Enter password again:<确认钱包密码>


$ ll $ORACLE_HOME/network/admin/wallet


total 16


-rw------- 1 oracle oinstall 7940 Sep 24 13:46 cwallet.sso


-rw------- 1 oracle oinstall 7912 Sep 24 13:46 ewallet.p12





3) 建立网络连接串, 注意每个网络连接串对应一个数据库用户


$ vi $ORACLE_HOME/network/admin/tnsnames.ora


db_utest =


(DESCRIPTION =


(ADDRESS = (PROTOCOL = TCP)(HOST = DataGuard)(PORT = 1521))


(CONNECT_DATA =


(SERVER = DEDICATED)


(SERVICE_NAME = MNTR.LK)


)


)





4) 加入用户认证信息到Wallet


其中db_utest是前面设置的网路连接串, "iamENCY3_"是用户u_test的密码.


$ $ORACLE_HOME/bin/mkstore -wrl $ORACLE_HOME/network/admin/wallet -createCredential db_utest u_test "iamENCY3_"


Enter wallet password:<输入钱包密码>


Create credential oracle.security.client.connect_string1





5) 确认用户认证信息已经加入到Wallet


$ $ORACLE_HOME/bin/mkstore -wrl $ORACLE_HOME/network/admin/wallet -listCredential


Enter wallet password:<输入钱包密码>


List credential (index: connect_string username)


1: db_utest u_test





6) 加入Wallet位置信息到sqlnet.ora


$ vi $ORACLE_HOME/network/admin/sqlnet.ora


WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u01/app/oracle/product/10.2.0/db_1/network/admin/wallet)))


SQLNET.WALLET_OVERRIDE=TRUE





7) 登录OWM(图形界面), 确认是否自动登录(默认是), 本步只是确认一下可忽略


$ $ORACLE_HOME/bin/owm &


先open目录/u01/app/oracle/product/10.2.0/db_1/network/admin/wallet下的Wallet, 然后从菜单栏里查看"Auto Login"是否已经选中.





8) 登录测试


$ sqlplus /@db_utest


SQL*Plus: Release 10.2.0.4.0 - Production on Thu Sep 24 14:05:17 2009


Copyright (c) 1982, 2007, Oracle. All Rights Reserved.


Connected to:


Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production


With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> show user;


USER is "U_TEST"


登录成功, 设置完毕!以后就可以在shell里直接使用"sqlplus /@db_utest"登录数据库操作了, 无需设置密码.





9) 修改用户密码测试


SQL> alter user u_test identified by "iamENCY3_2";


SQL> exit


$ sqlplus /@db_utest


SQL*Plus: Release 10.2.0.4.0 - Production on Thu Sep 24 14:07:05 2009


Copyright (c) 1982, 2007, Oracle. All Rights Reserved.


ERROR:


ORA-01017: invalid username/password; logon denied




10) 如果修改了用户密码, 则需要重新修改认证信息


$ $ORACLE_HOME/bin/mkstore -wrl $ORACLE_HOME/network/admin/wallet/ -modifyCredential db_utest u_test "iamENCY3_2"


Enter wallet password:<输入钱包密码>


Modify credential


Modify 1




11) 删除Wallet认证的方法


$ $ORACLE_HOME/bin/mkstore -wrl $ORACLE_HOME/network/admin/wallet/ -deleteCredential db_utest


Enter wallet password:<输入钱包密码>


Delete credential


Delete 1