How to use Oracle Wallet
Wallet可以将其当作一种免密连接的方式,在DB端配置好wallet,然后将验证文件拷贝到客户端,客户端在使用这个连接的时候就可以不用密码登陆了。 简单配置:1,创建一个存储wallet的位置:mkdir -p /tmp/wallet/orcl 2,在tnsnames.ora里面配置你的连接串: ORCL_WALLET= (DESCRIPTION= (ADDRESS=((PROTOCOL=tcp)(HOST=test1.com)(PORT=1630))) 3,使用mkstore创建wallet: ?mkstore -wrl <wallet_location> -create mkstore -wrl /tmp/wallet -create 这一步会生成? 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 = TRUE SSL_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))) 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> (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |