根本原因是数据库未启用外部口令存储支持,需在sqlnet.ora中配置SQLNET.AUTHENTICATION_SERVICES=(EXTERNAL)和WALLET_LOCATION,并确保路径正确、权限合法、客户端环境重载。Oracle Wallet 创建后 sqlplus / @db 仍提示密码错误?根本原因不是 wallet 没建好,而是数据库没启用外部口令存储支持。oracle 默认关闭该功能,必须显式配置 sqlnet.authentication_services 和 wallet_location 才能走 wallet 自动登录。检查 $ORACLE_HOME/network/admin/sqlnet.ora 是否包含这两行(顺序无关):SQLNET.AUTHENTICATION_SERVICES = (EXTERNAL)WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /path/to/wallet)))WALLET_LOCATION 的 DIRECTORY 必须是绝对路径,且 Oracle 进程用户(如 oracle)对该目录有读+执行权限(chmod 700 安全起见)改完 sqlnet.ora 不需要重启监听或实例,但客户端环境(比如你 ssh 登录的 shell)要重新加载,或者新开终端------很多人卡在这一步,以为配置不生效用 mkstore 添加用户时提示 ORA-12154: TNS could not resolve the connect identifier这不是 Wallet 问题,而是 mkstore 命令本身不连接数据库,它只操作本地文件。这个错误说明你误在命令里写了 @db 或类似 TNS 别名------mkstore 根本不认连接串。正确添加用户名密码的命令长这样:mkstore -wrl "/path/to/wallet" -createCredential ORCL myuser mypass其中 ORCL 是 TNS 别名(对应 tnsnames.ora 里的条目),不是数据库名也不是服务名-createCredential 后的三个参数:Wallet 路径、TNS 别名、用户名、密码------顺序错一个就报各种奇怪错误如果 tnsnames.ora 里没有 ORCL 条目,sqlplus / @ORCL 当然连不上,但 Wallet 本身是好的;先确保 tnsping ORCL 通,再配 Wallet为什么 sqlplus / @ORCL 能自动登录,但 sqlplus myuser/mypass@ORCL 还是能连?Wallet 不会禁用口令认证,它只是多提供一种认证方式。只要用户名密码正确,传统方式依然有效------这反而是设计意图:Wallet 是增强,不是替代。真正想强制走 Wallet,得关掉口令登录:在 sqlnet.ora 加 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8(不推荐)或更实际的做法是,在应用层统一用 / @db 格式,并移除应用代码里的明文密码注意 SQLNET.ALLOWED_LOGON_VERSION_SERVER 设太低会导致 12c+ 新特性失效,别乱调Wallet 本身不加密网络传输,它只解决"本地客户端免输密码"问题;链路加密还得靠 SQLNET.ENCRYPTION_CLIENT 单独配Wallet 文件被删或损坏后,sqlplus / @db 报 ORA-12649: Unknown encryption algorithm这个错误通常不是算法问题,而是 Oracle 尝试读一个已损坏、非 Wallet 格式、或权限不对的文件。Wallet 是二进制格式,不能用文本编辑器改,也不能用 cp 覆盖正在被使用的 wallet。 Tellers AI Tellers是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。
相关推荐
呱呱复呱呱2 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的Nturmoils2 小时前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT曲幽6 小时前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API渣波6 小时前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码荣码7 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面兵慌码乱16 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析金銀銅鐵18 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程FreakStudio21 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发用户0332126663671 天前
使用 Python 从零创建 Word 文档Csvn1 天前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定