繁体   English   中英

ORA-01017: 无效的用户名/密码; 尝试通过 ODP.NET 连接时登录被拒绝 (Oracle.ManagedDataAccess.Client)

[英]ORA-01017: invalid username/password; logon denied when trying to connect via ODP.NET (Oracle.ManagedDataAccess.Client)

以下代码抛出:ORA-01017:无效的用户名/密码; 登录被拒绝

string constr = "User Id=Name;Password=Password;Data Source=server:1521/service";
OracleConnection con = new OracleConnection(constr);
con.Open();

SQL Developer、DBeaver 连接没有问题。 FIPS 已禁用。

系统:

  • Oracle 服务器 11g (11.2.0.3.0)
  • Oracle.ManagedDataAccess 19.6.0
  • .Net 框架 4.8
  • 视窗 10 1909

我将非常感谢您的帮助!

假设密码正确(无意冒犯,但在 99.99% 的情况下,此错误是因为密码错误),此问题的一个可能原因是区分大小写和不同的密码哈希算法。

如果您使用密码“PASSWORD”创建用户,Oracle 可能会为其创建多个不同的密码哈希。 其中一个版本旨在与旧客户端一起使用,可以使用“密码”或“密码”。 较新的版本仅适用于“密码”。 所以你可能总是使用错误的密码,你只是因为老客户而走运。

Oracle 密码散列真是一团糟。 您可以检查列 SYS.USER$.PASSWORD 和 SYS.USER$.SPARE4 的哈希值,或检查 SQLNET.ORA 文件中旨在禁用某些哈希值的参数。 但大多数情况下,您最好重新创建密码并查看是否有效。

(如果确实如此,请不要吸取错误的教训并尝试禁用旧的密码哈希算法。这比手册中暗示的要困难得多。)

我认为这是 ODP.net 的有效数据源描述符。 看:

https://stackoverflow.com/a/31592492/852208

编辑:看起来您正在使用 ezconnect 格式,但这需要内联用户名和密码: https ://www.connectionstrings.com/oracle-data-provider-for-net-odp-net/using-the -easy-connect-naming-method-aka-ez-connect/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM