【发布时间】:2023-02-25 05:07:24
【问题描述】:
我正在尝试连接 python 和 oracle db,但由于没有互联网连接,我无法下载任何客户端。
我正在为此使用 oracledb,但出现此错误。关于如何在不下载任何东西的情况下解决它的任何线索?
谢谢你!
【问题讨论】:
-
出于兴趣,如果没有互联网,你是如何安装 python-oracledb 的?
-
它是由 IT 部门安装的,然后由于安全问题而被禁用....
我正在尝试连接 python 和 oracle db,但由于没有互联网连接,我无法下载任何客户端。
我正在为此使用 oracledb,但出现此错误。关于如何在不下载任何东西的情况下解决它的任何线索?
谢谢你!
【问题讨论】:
问题是在服务器上您有名为sec_case_sensitive_logon 的数据库设置,当设置为值 FALSE 并与 sqlnet.ora 设置sqlnet.allowed_logon_version_server=10 结合时,将禁用 11g 和 12c 验证器的使用——它们是唯一的瘦驱动程序支持的那些。
您可以在这个 python-oracledb 问题 raised earler 上看到这一点。
您将不得不禁用不区分大小写的登录或使用厚驱动程序(这需要下载客户端库)。
【讨论】:
如果您要连接到 Oracle Database 11gR2 或更早版本,请使用 python-oracledb Thick 模式,或升级数据库。
对于以后的数据库:
sec_case_sensitive_logon不为FALSE。在 SQL*Plus 中作为 SYSDBA,运行show parameter sec_case_sensitive_logon来检查值。
注意 sec_case_sensitive_logon 已在 DB 21c 中删除,请参阅 documentation
ALTER USER x IDENTIFIED BY y
该错误仅在 Thin 模式下出现,因此 using Thick mode 是一个通用的解决方案。
【讨论】: