我在一台机器上安装了 oracle 服务器,在另一台机器上安装了 e oracle 客户端。我使用此命令创建了一个钱包
C:\Users\MRBULL93>mkstore -wrl C:\VideoWallet -create
C:\Users\MRBULL93>mkstore -wrl C:\VideoWallet -createCredential kejvidoko SYSTEM
还修改了sqlnet.ora文件如下
# sqlnet.ora Network Configuration File:
C:\app\MRBULL93\product\11.2.0\client_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
WALLET_LOCATION =
(SOURCE =
(METHOD=FILE)
(METHOD_DATA =
(DIRECTORY =C:\VideoWallet)
)
)
SQLNET.WALLET_OVERRIDE = TRUE
==================================================== ======
我可以使用 cmd 修改密码,也可以使用钱包管理器打开它,但是当我调用它时
SQLPLUS /@kejvidoko
我收到以下消息
错误:ORA-12578:TNS:钱包打开失败
有人可以告诉我如何解决这个问题。
在某些版本的 Oracle 中,不能在行首和 WALLET_LOCATION 关键字之间放置空格,并且必须在行首和钱包定义之间放置空格。您的代码段表明您在其中一件事情上失败了。我认为他们从某些 Oracle 版本开始删除了这个愚蠢的要求,但安全总比抱歉好。
好的:
可能错误:
可能错误:
永远都不迟 :
您不能将钱包与 SYSTEM 用户一起使用。钱包是供用户(在操作系统级别)连接数据库思想系统(如 oracle 用户所做)的。在操作系统级别创建用户(为 ie 命名为 myuser/myuser)并发出
mkstore -wrl C:\VideoWallet -createCredential kejvidoko myuser 输入凭据
瞧。尝试连接时,不要忘记 'as sysdba' 参数。 http://mohamedazar.com/2012/03/25/how-to-configure-clients-to-use-external-password-stores/