【发布时间】:2021-03-02 07:43:33
【问题描述】:
全部
我正在尝试连接到 Oracle 19C 数据库。我安装了两个 Oracle 客户端(11g 和 12c),因为我们需要支持遗留程序。我可以通过 12c 客户端与任何使用 sqlplus 的用户毫无问题地连接。但是,如果我对任何用户使用 11g (11.2.0) 客户端。我总是得到:
ERROR:
ORA-01017: invalid username/password; logon denied
两个客户端都有完全相同的 sqlnet.ora 和 tnsnames.ora 文件,因此两个客户端都指向同一个数据库。
有什么想法吗?我需要在 19c 服务器中设置一些特定的配置吗?还是我需要在 11g 客户端中进行一些更改?这甚至可能吗?
谢谢。
【问题讨论】:
-
或许可以看看SQL Net协议设置docs.oracle.com/en/database/oracle/oracle-database/18/spmsu/…
-
不要忘记,让您的数据库服务器兼容 11g 密码本质上是回滚 Oracle 为您实施的安全改进。如果您确实像 Connor 建议的那样调整 sql net 参数,您应该检查您需要登录的用户是否将 11g 密码哈希存储在数据库中 - dba_users 有一个您应该检查的 password_versions 列,如果它不包含足够旧的版本,那么您需要在更改 sqlnet 参数并连接新会话后重置密码。
-
我的 19c 实例在服务器端的 sqlnet.ora 文件已经有: SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 并且 dba_users 列包含: SQL> select USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS from dba_users where username like 'user%';用户名 - - - - - - - - - - - - - - - - - - - - - - - - - ------------------------------- ACCOUNT_STATUS PASSWORD_VERSIONS user1 OPEN 11G 12C
-
您的 11.2.0 客户端必须至少修补到 11.2.0.3 或 11.2.0.4。少的东西不兼容 19c 服务器。
标签: oracle oracle11g oracle12c oracle19c ora-01017