oracle ORA-01017 从 9i 客户端连接到 11g 数据库时无效的用户名/密码

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/14476875/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-10 04:47:41  来源:igfitidea点击:

ORA-01017 Invalid Username/Password when connecting to 11g database from 9i client

oracleoracle11goracle9i

提问by user1578653

I'm trying to connect to a schema on 11g (v11.2.0.1.0) from a PC with 9i (v9.2.0.1) client. It seems to connect fine to some schemas, but not this one - it comes back with a ORA-01017 Invalid Username/Passworderror every time.

我正在尝试从带有 9i (v9.2.0.1) 客户端的 PC 连接到 11g (v11.2.0.1.0) 上的模式。它似乎可以很好地连接到某些模式,但不是这个模式 -ORA-01017 Invalid Username/Password每次都会返回错误。

The username and password are DEFINITELY correct - can anyone think of a reason why this wouldn't work?

用户名和密码绝对正确 - 谁能想到这不起作用的原因?

Are there any fundamental incompatibilities between 9i and 11g?

9i 和 11g 之间是否存在根本的不兼容?

采纳答案by baklarz2048

The user and password are DEFINITELY incorrect. Oracle 11g credentials are case sensitive.

用户名和密码绝对不正确。Oracle 11g 凭证区分大小写。

Try ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; and alter password.

尝试 ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; 并修改密码。

http://oracle-base.com/articles/11g/case-sensitive-passwords-11gr1.php

http://oracle-base.com/articles/11g/case-sensitive-passwords-11gr1.php

回答by theGabyRod

I had a similar issue some time ago. You must be careful with quotes and double quotes. It's recommended to reset the user password, using a admin credentials.

前段时间我遇到了类似的问题。你必须小心引号和双引号。建议使用管理员凭据重置用户密码。

ALTER USER user_name IDENTIFIED BY new_password;

But don't use double quotes in both parameters.

但是不要在两个参数中都使用双引号。

回答by ManishSingh

for oracle version 12.2.x users cannot login using case insensitive passwords, even though SEC_CASE_SENSITIVE_LOGON = FALSE if PASSWORD_VERSIONS of user is not 10g.

对于 oracle 版本 12.2.x 用户不能使用不区分大小写的密码登录,即使 SEC_CASE_SENSITIVE_LOGON = FALSE 如果用户的 PASSWORD_VERSIONS 不是 10g。

following sql should show the PASSWORD_VERSIONS for a user.

以下 sql 应显示用户的 PASSWORD_VERSIONS。

select USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS from dba_users;
USERNAME          ACCOUNT_STATUS    PASSWORD_VERSIONS 
---------------   --------------    -----------------
dummyuser         OPEN              11G 12C

to make PASSWORD_VERSIONS compatible with 10g

使 PASSWORD_VERSIONS 与 10g 兼容

add/modify line in sqlnet.ora of database to have SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 restart database change/expire password for existing user new users created will also have same settings after above steps PASSWORD_VERSIONS should be something like this

在数据库的 sqlnet.ora 中添加/修改行以使 SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 重新启动数据库更改/过期密码为现有用户创建的新用户在上述步骤后也将具有相同的设置 PASSWORD_VERSIONS 应该是这样的

select USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS from dba_users;
USERNAME          ACCOUNT_STATUS    PASSWORD_VERSIONS 
---------------   --------------    -----------------
dummyuser         OPEN              10G 11G 12C

回答by lucrussell

If all else fails, try resetting the password to the same thing. I encountered this error and was unable to work around it, but simply resetting the password to the same value resolved the problem.

如果所有其他方法都失败了,请尝试将密码重置为相同的内容。我遇到了这个错误并且无法解决它,但只需将密码重置为相同的值即可解决问题。

回答by Andreas Dietrich

I had the same error, but while I was connected and other previous statements in a script ran fine before! (So the connection was already open and some successful statements ran fine in auto-commitmode) The error was reproducable for some minutes. Then it had just disappeared. I don't know if somebody or some internal mechanism did some maintenance work or similar within this time - maybe.

我有同样的错误,但是当我连接时,脚本中的其他先前语句之前运行良好!(所以连接已经打开,一些成功的语句在自动提交模式下运行良好)几分钟内可以重现错误。然后它就消失了。我不知道在这段时间内是否有人或某些内部机制做了一些维护工作或类似的工作——也许吧。

Some more facts of my env:

我的环境的更多事实:

  • 11.2
  • connected as: sys as sysdba
  • operations involved ... reading from all_tables, all_viewsand granting selecton them for another user
  • 11.2
  • 连接为: sys as sysdba
  • 操作涉及......读取all_tablesall_views并为另一个用户授予选择

回答by Greg

I had the same issue and put double quotes around the username and password and it worked: create public database link "opps" identified by "opps" using 'TEST';

我遇到了同样的问题,并在用户名和密码周围加上双引号,它起作用了:使用“TEST”创建由“opps”标识的公共数据库链接“opps”;

回答by Shuaib Puthukudi

I am not an expert. If you are getting ORA-01017 while trying to connect HR schema from SQL Developer in Oracle 11g Please try to unlock the HR as follows

我不是专家。如果您在尝试从 Oracle 11g 中的 SQL Developer 连接 HR 模式时遇到 ORA-01017 请尝试如下解锁 HR

alter user HR identified by hr DEFAULT tablespace users temporary tablespace temp account unlock;

更改用户 HR 由 hr DEFAULT 表空间用户临时表空间临时帐户解锁;

回答by Lay Leangsros

You may connect to Oracle database using sqlplus:

您可以使用 sqlplus 连接到 Oracle 数据库:

sqlplus "/as sysdba"

Then create new users and assign privileges.

然后创建新用户并分配权限。

grant all privileges to dac;

回答by vapcguy

I know this post was about 11g, but bug in the 12c client with how it encrypts passwords may be to blame for this error if you decide to use that one and you:

我知道这篇文章大约是 11g,但是如果您决定使用该错误并且您:

  • Don't have the password case-sensitivity issue (i.e. you tried ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSEand resetting the password and still doesn't work),
  • Put quotes around your password in your connection string and it still doesn't help,
  • You've verified all of your environmental variables (ORACLE_HOME, PATH, TNS_ADMIN), and the TNS_ADMINregistry string at HKLM\Software\Oracle\KEY_OraClient12Homeis in place,
  • You've verified your connection string and user name/password combination works in Net Manager, and
  • You can connect using SQL*Plus, Oracle SQL Developer using the same credentials.
  • 没有密码区分大小写的问题(即您尝试ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE并重置密码但仍然无效),
  • 在您的连接字符串中为您的密码加上引号,但它仍然没有帮助,
  • 您已经验证了所有环境变量 ( ORACLE_HOME, PATH, TNS_ADMIN),并且TNS_ADMIN注册表字符串HKLM\Software\Oracle\KEY_OraClient12Home已就位,
  • 您已验证您的连接字符串和用户名/密码组合在 Net Manager 中有效,并且
  • 您可以使用 SQL*Plus、Oracle SQL Developer 使用相同的凭据进行连接。

All the basic checks.

所有基本检查。

Fix: Try setting HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabledto 0in the registry (regedit) to disable FIPS.

修复:尝试设置HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled0注册表(注册表编辑器)来禁用FIPS。

Oracle.ManagedDataAccess and ORA-01017: invalid username/password; logon denied

Oracle.ManagedDataAccess 和 ORA-01017: 无效的用户名/密码;登录被拒绝

ORA-01005 error connecting with ODP.Net

ORA-01005 连接 ODP.Net 时出错

https://community.oracle.com/thread/2557592?start=0&tstart=0

https://community.oracle.com/thread/2557592?start=0&tstart=0

https://dba.stackexchange.com/questions/142085/ora-01017-invalid-username-passwordlogon-denied/142149#142149

https://dba.stackexchange.com/questions/142085/ora-01017-invalid-username-passwordlogon-denied/142149#142149

回答by gautejohan

I also got the same sql error message when connecting through odp.net via a Proxy User.

通过代理用户通过 odp.net 连接时,我也收到了相同的 sql 错误消息。

My error was that my user was created with quotation marks (e.g. "rockerolf") and I then also had to specify my user in the connectionstring as User Id=\"rockerolf\"..

我的错误是我的用户是用引号创建的(例如“rockerolf”),然后我还必须在连接字符串中将我的用户指定为 User Id=\"rockerolf\"..

In the end I ended up deleting the user with the quotation marks and create a new one without..

最后,我最终删除了带引号的用户,并创建了一个没有..

face palm

脸掌