Wallet可以将其当作一种免密连接的方式,在DB端配置好wallet,然后将验证文件拷贝到客户端,客户端在使用这个连接的时候就可以不用密码登陆了。
简单配置:1,创建一个存储wallet的位置:mkdir -p /tmp/wallet/orcl
2,在tnsnames.ora里面配置你的连接串:
ORCL_WALLET= (DESCRIPTION= (ADDRESS=((PROTOCol=tcp)(HOST=test1.com)(PORT=1630)))
(CONNECT_DATA= (SERVICE_name=ORCL)))
3,使用mkstore创建wallet: mkstore -wrl <wallet_location> -create
mkstore -wrl /tmp/wallet -create
这一步会生成 cwallet.sso
和 ewallet.p12, cwallet.sso是auto login wallet,用于免去交互式密码登录,ewallet.p12则是PKCS #12 wallet,用来存储传输个人登录认证信息。
4,往wallet里面添加认证信息: mkstore -wrl <wallet_location> -createCredential <db_connect_string> <username> <password>
例子,比如说配置账号为scott,密码为tiger的免密登录:
mkstore -wrl /tmp/wallet/orcl -createCredential ORCL_WALLET scott tiger
小tips:
a,推荐使用tnsnames.ora配置连接串的方式
b,如果你使用的不是tnsnames.ora来配置<db_connect_string>的话,而是使用 (DESCRIPTION= (ADDRESS=((PROTOCol=tcp)(HOST=test1.com)(PORT=1630))) (CONNECT_DATA= (SERVICE_name=ORCL)))这种形式,你要注意使用双引号将其包含起来,因为任何特殊字符都会导致失败
c,你可以在客户端保存多个DB多个wallet,但是在服务端,你不能往一个wallet里面添加多个登录认证信息,比如说,你创建了一个wallet,然后往这个wallet添加了用户scott,那么就算你是同一个DB的,你也不能再往这个wallet里面添加其他用户了。多个schema要配置多个wallet。
测试:1,在sqlnet.ora里面配置
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY = /tmp/wallet/orcl) ) )sqlNET.WALLET_OVERRIDE = TRUESSL_CLIENT_AUTHENTICATION = FALSE
Note: 当一个应用使用了SSL加密的话,sqlNET.WALLET_OVERRIDE设置为true,它会在SSL认证后,使用wallet中存储的用户密码认证DB
2,在tnsnames.ora里面配置,注意alias必须跟你之前创建wallet的时候一样,不然会认证失败
ORCL_WALLET= (DESCRIPTION= (ADDRESS=((PROTOCol=tcp)(HOST=test1.com)(PORT=1630)))
(CONNECT_DATA= (SERVICE_name=ORCL)))
3,测试,连接串也是使用相同的alias
sqlplus /@ORCL_WALLET
其他的一些管理:
1,用户更新密码后,记得更新wallet
mkstore -wrl <wallet_location> -modifyCredential <dbase_alias> <username> <password>
2,DB信息更新后,记得更新tnsnames.ora
3,删除wallet里面的认证信息
mkstore -wrl <wallet_location> -deleteCredential <db_alias>
总结以上是内存溢出为你收集整理的How to use Oracle Wallet全部内容,希望文章能够帮你解决How to use Oracle Wallet所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)