ORA-01017: 用户名/密码无效;登录被拒绝

发布时间 2023-09-18 13:05:31作者: DawnTraveler

总结

出现此错误的原因有多种:

您的用户名或密码实际上不正确
数据库配置不正确(tnanames.ora、 $ORACLE_SID 参数)
现在,我们来看看这个错误的解决方案。

ORA-01017 解决方案

有几种方法可以解决 ORA-01017 错误:

检查用户名和密码是否正确

这似乎是一个显而易见的步骤,但请确保您输入的用户名和密码正确。

如果您将它们存储在其他地方,请确保您正在查找正确的密码。

另外,请尝试手动输入用户名和密码,而不是复制和粘贴(反之亦然),以确保不存在回车或奇怪字符的问题。

Oracle 11g 密码区分大小写,因此请确保您的连接字符串符合此要求。

如果您要连接到 Oracle 11g 数据库,则密码区分大小写。

这是Oracle 11g 中引入的新功能。这是一个可以打开和关闭的数据库设置,但如果它打开,您将需要以不同的方式处理连接字符串。

要解决此问题,您可以在连接到数据库时在双引号内指定密码。

例如,如果您的密码是“DatabaseStar”,并且您正在连接到这样的数据库,您将收到错误消息:

CONN bob/databasestar;

要解决此错误,请在双引号中指定密码:

CONN bob/"DatabaseStar";

请注意注意目前使用的的数据库SID是否正确

若连到其他数据库实例,即使输入正确的账号密码也会出错

请检查数据库链接设置

如果您在运行查询时收到此错误,但您已经登录到数据库,则可能是因为您的查询使用数据库链接,并且数据库链接的连接详细信息不正确。

要检查数据库链接,您可以对其运行简单的查询以查看其是否有效。

然后,您可以检查连接字符串以确保用户正确,并且密码区分大小写(如果您使用的是 Oracle 11g 数据库)。

如果您连接到 Oracle 11g 数据库但从 10g 或更早版本运行查询,则区分大小写仍然适用。它与您要连接的数据库有关,而不是来自数据库。

使用前面的示例,如果您在连接字符串中将密码指定为 DatabaseStar,则会收到错误消息。

这是因为DatabaseStar的密码被转换为大写,即DATABASESTAR。然后根据 DatabaseStar 的存储值进行检查,发现有所不同。

要解决此问题,请将您的密码放在双引号内。

CONNECT TO order_database IDENTIFIED BY bob USING "DatabaseStar";

因此,请检查数据库连接字符串的这些内容。

检查您的 TNSNAMES.ORA 文件

您的 TNSNAMES.ORA 文件包含数据库的服务 ID 信息列表。

如果该文件中的信息不正确,您可能会收到此 ORA-01017 错误。

打开文件并检查此信息是否正确,例如服务名称和 ID。