欢迎访问宙启技术站
智能推送

怎么解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误

发布时间:2023-05-17 03:20:34

Oracle数据库是当前世界上应用最为广泛的企业级关系型数据库管理系统之一,广泛应用于各类系统、数据库和服务器。由于Oracle版本众多,不同版本在安装和部署上也会有所不同,这使得在使用Oracle时可能会遇到各种问题。本文将提供如何解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误的方法。

解决ORA-28040错误

ORA-28040错误是由于使用Oracle客户端连接至Oracle服务器时,客户端的身份识别信息不正确所致。该错误通常出现在使用较早版本的Oracle客户端连接新版Oracle服务器时。解决这个问题有以下两种方法:

方法一:升级客户端

较老版本的客户端可能已经无法正确处理较新版本的Oracle服务器所使用的身份验证方法。因此, 的解决方法是升级客户端到最新版本。

方法二:配置密码文件

在早期的Oracle版本中,密钥和密码都存储在可读的密码文件中。为了确保该文件不被他人阅读,将其权限设置为只允许Oracle用户和组成员访问。)

  创建密码文件

  使用命令orapwd,生成 Oracle 客户端 password file。语法:

  orapwd file=pwdfile_name password=password entries=num_users

  其中 pwdfile_name 指定密码文件名称,password 指定运行Oracle 的用户的密码,num_users 表示允许的用户连接数。

  例如:orapwd file=orapwtest password=pwdtest entries=5

  创建完密码文件后将该文件复制到客户端机器的$ORACLE_HOME/network/admin目录下。

解决ORA-01017错误

ORA-01017错误是由于使用Oracle客户端连接Oracle服务器时,用户名或密码不正确所致。可以采取以下几种方法解决该问题:

方法一:确认用户名和密码是否正确

ORA-01017错误意味着连接信息(用户名和密码)是不正确的。因此,确认用户名和密码是否正确是最重要的补救措施。

方法二:密码限制

如果使用的Oracle版本为10以后,该版本已经默认开启了密码限制。因此需要确认连接用户名是否被授权使用 Oracle 实例、在尝试连接到 Oracle 实例之前是否已启用新口令管理政策,并确保在指定的远程服务器地址正确且运行正常。

方法三:检查 tnsnames.ora 文件

检查 tnsnames.ora 文件中的连接信息是否正确,包括正确的 HOST 地址、正确的服务名称,以及 Oracle 主机是否在服务中运行。

方法四:重置用户密码

如果确认用户名和密码正确,但是该用户仍然无法连接数据库,可能是因为密码过期或者需要重置。使用以下两种方法中的任何一种均可重置密码:

1. 使用 SQL*Plus 命令行界面:在 SQL*Plus 命令行界面中,输入以下命令:

  SQL>ALTER USER username ACCOUNT UNLOCK;  SQL>ALTER USER username IDENTIFIED BY password; 

2. 使用 SQL Developer:打开 SQL Developer,右键单击要更改密码的用户名,选择“修改密码”,然后输入新密码即可。

综上所述,解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误,可以采用升级客户端、配置密码文件、确认密码限制、检查tnsnames.ora文件和重置用户密码等方法。