如何配置Oracle的外部口令存储_安全外部密码库Wallet自动登录

根本原因是数据库未启用外部口令存储支持,需在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是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。

相关推荐
枫叶丹1 分钟前
告别“人肉”搬砖:当AI助手直连数据库,SQL优化从未如此简单
数据库
学AI不秃头2 分钟前
官方要 16GB,实测 4-bit 压到 2.9GB:把 LocateAnything-3B 搬上 8GB Jetson
python·深度学习·机器学习·计算机视觉·机器人
zyplayer-doc3 分钟前
企业文档的进化:网盘和在线文档的下一个升级方向—知识库系统
java·大数据·数据库·人工智能·ocr
Leon-Ning Liu5 分钟前
【真实经验分享】Oracle RAC 修改 db_file_name_convert / log_file_name_convert 参数实践
数据库·oracle
影寂ldy16 分钟前
C# 多线程进阶知识点(线程优先级、多委托传参、线程锁、死锁)
开发语言·数据库·c#
Leon-Ning Liu24 分钟前
【真实经验分享】Oracle RAC + ASM 下 db_recovery_file_dest 路径格式导致 ORA-01261 无法 NOMOUNT
数据库·oracle
凤山老林29 分钟前
从“无法创建本地线程“异常说起:深度解析线程栈与JVM线程优化指南
java·开发语言·jvm
Exclusive_Cat35 分钟前
FastAPI热重载失效?降级uvicorn解决
python·fastapi
QN1幻化引擎1 小时前
# DalinX V8 灵鉴 V2:12维意识评测框架 —— 从 Tononi IIT 到 Friston FEP 的理论统一
数据库·人工智能·算法·机器学习·数据挖掘·agi
聚美智数1 小时前
常见疾病查询-疾病症状—疾病介绍-疾病大全-疾病治疗查询API接口介绍
android·java·数据库