☀️Navicat连接Oracle:'ORA-12638: Credential retrieval failed' 解决办法
前言:
我们在使用Navicat连接Oracle数据库的时候,需要oci.dll动态链接库,Navicat16在安装时候已经自带了。
我在之前使用一直好好的,就今天需要连一个新项目的Oracle,报错了:ORA-12638: Credential retrieval failed',如下:
解决:
通过同事口中得知,要连接的Oracle版本是:12c(12.2.0.1.0),而我之前连接的数据库版本是Oracle11g,所以我们需要一个新的oci.dll文件。
关于oracle 11g和12c发行时间以及区别:
Oracle 11g是Oracle公司在2007年发行的一款数据库软管理系统。而Oracle 12c则是在2013年发行的。 Oracle 11g和12c虽然都是Oracle公司的数据库管理系统,但在某些方面存在一些主要区别: Multitenant Architecture:Oracle 12c引入了新的多租户体系结构,允许多个独立的可插拔数据库(PDBs)运行在同一个容器数据库(CDB)中,而无需消耗额外的系统资源。而Oracle 11g没有这个功能。 数据优化:Oracle 12c引入了自动数据优化(ADO)功能,可根据数据的使用情况和热度,自动将数据移至优化的存储层,从而提高了整体性能和效率。而Oracle 11g并没有这项功能。 内存管理:Oracle 12c优化了内存管理,引入了自动大页特性,可以大幅度提高数据库的性能和可扩展性。而Oracle 11g对此没有明显改进。 安全性:Oracle 12c提供了更高级别的安全性,包括数据红利射(Data Redaction)、高级网络服务安全等,而Oracle 11g则没有这些新的安全特性。 性能诊断:Oracle 12c增强了对性能问题的诊断和解决能力,具备了提供实时数据的活动报告,包括活动会话历史(ASH)、自动工作负载存储库(AWR)等,而Oracle 11g的这些功能相对较弱。 兼容性:Oracle 12c拥有向下兼容性,可处理在Oracle 11g中运行的应用程序,而Oracle 11g则不能处理在Oracle 12c中运行的应用程序。
oci.dll文件下载:
官网下载地址:https://www.oracle.com/cn/database/technologies/instant-client/downloads.html
Oracle公共用户名密码:2028056560@qq.com,Oracle1234
蓝奏云下载地址:https://wwxo.lanzouj.com/iWbP716p3n9i
此处我要连接的数据库版本是12.2.0.1.0版本,同时的高版本对低版本的Oracle连接同样的也适用。
Navicat指定oci.dll
工具-->选项-->指定oci.dll文件地址-->重启Navicat生效
ORA-12638: Credential retrieval failed'
上个步骤已经设置好了Oracle动态链接库,连接Oracle还是出现了错误,意思大概是:ORA-12638:凭据检索失败'
解决办法:
修改sqlnet.ora文件(位置:$ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA):
将NTS设置为NONE
#SQLNET.AUTHENTICATION_SERVICES= (NTS) SQLNET.AUTHENTICATION_SERVICES= (NONE)
成功连接: