全部
我正在尝试连接到 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 客户端中进行一些更改吗?这可能吗?
谢谢你。
查看不同 Oracle 版本的客户端/服务器互操作性支持矩阵(文档 ID 207303.1)
通常安装多个 Oracle 客户端(即 32 位和 64 位各一个)是一个坏主意。
对于某些组件,例如“Oracle OleDB Provider”甚至不可能安装多个版本(同样,32 位和 64 位各一个)。这是旧的 Windows COM 架构的限制。
对于其他组件,它可能有效,但是您需要相应地设置
%PATH%
环境变量,使其指向安装当前所需版本的正确文件夹。
我无法使 11 客户端(ODP.Net + Instant Client 11.2)连接到 19 DB,无论我对 sqlnet.ora 文件进行了有关安全性等的任何更改,无论是在服务器还是客户端。我总是收到一条关于不可能协商协议的神秘消息。
安装 Instant Client 19 时没有任何问题,只是密码现在区分大小写。我还可以将此新客户端与运行 11.2 软件的旧数据库一起使用。
我已使用 ODAC 11.2.0 连接到 Oracle 19C 版本 19.0.0.0.0,没有任何问题。但如果您想连接到 oracle 19C 更高版本,则需要拥有 ODAC 11.0.3 或更高版本。仍在寻找使用 ODAC 11.0.2 连接到更高版本的 Oracle 19C 版本的方法。
添加到sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
在11客户端修改密码