MacOS Python与Oracle即时客户端的Oracle TCPS连接-ORA-29024:证书验证失败



我正试图使用Python cx_Oracle包和Oracle instantclient_19_8连接到Oracle数据库。我一直收到这个错误-OORA-29024:证书验证失败。

  1. 我下载并安装了Oracle InstantClient_19_8
  2. 在[…]instantclient_19_8/network/admin目录中,我复制了从DBA那里收到的cwallet.so和ewallet.p12文件
  3. 我在network/admin目录中创建了一个sqlnet.ora文件:

WALLET_LOCATION=(来源=(方法=文件((方法_数据=(目录=/instantclient_19_8/network/admin()(SQLNET。WALLET_OVERRIDE=真

  1. 我在网络/管理目录中创建了一个tnsnames.ora文件(尽管这可能没有必要(:

ora_conn=(描述=(地址列表=(地址=(协议=TCPS((主机={主机}((端口=1525())(连接数据=(服务名称={SVC_NAME()(

  1. 在Pycharm中,我设置了TNS_ADMIN环境变量,并将其指向[…]/instantclient_19_8/network/ADMIN

我的Python连接信息是:

dsn=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST={HOST_ADDRESS})(PORT={PORT_NBR})))(CONNECT_DATA=(SERVICE_NAME={SVC_NAME})))
cx_Oracle.init_oracle_client(lib_dir='[...]/instantclient_19_8') 
ora_conn = cx_Oracle.connect(user=usr
, password=pw
, dsn=dsn
, encoding="UTF-8")
cursor = ora_conn.cursor()

我看过几篇关于使用orapki的博客文章,但不清楚如何将orapki与即时客户端一起使用。如果DBA创建了钱包,他们是唯一可以向钱包添加证书文件的人吗?或者,如果我让orapki工作,我能做到吗?

任何建议/指导都很棒!

谢谢!

设置DIRECTORY = /instantclient_19_8/network/admin看起来可疑。根文件系统中真的有instantclient_19_8目录吗?我希望看到类似/Users/you/instantclient_19_8/network/admin的东西。

但是,由于您将文件移动到了默认位置,因此甚至不需要编辑sqlnet.ora。默认的DIRECTORY路径(从?开始(会自动工作。当文件位于此默认位置时,也不需要设置TNS_ADMIN。

使用cx_Oracle这样的C语言代码,就不需要.p12文件。您只需要.so文件、sqlnet.ora和tnsnames.ora.

cx_Oracle文档"连接到Oracle云自动数据库"显示了两种选择:当钱包文件位于默认位置时,以及当没有时。

您可能还想看看博客文章"如何连接到Oracle自主云数据库"。

相关内容

  • 没有找到相关文章

最新更新