☀️Navicat连接Oracle:'ORA-12638: Credential retrieval failed' 解决办法

发布时间 2023-08-28 13:11:32作者: Java小白的搬砖路

前言:

我们在使用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)

成功连接: