Я не могу помочь с преобразованием стороны Java в сторону C, необходимую для cx_Oracle, но, возможно, следующее поможет показать, что нужно cx_Oracle. Я буду использовать пример, основанный на Oracle Exadata Express, который использует кошелек для подключения, см. Общие инструкции по подключению языков сценариев к Exadata Express здесь .
Ваши точные настройки и файлы могут отличаться. Как указал Энтони, настройки безопасности не относятся к cx_Oracle. Более опытные и полезные эксперты по безопасности могут скрываться на других форумах.
Для Exadata Express загружается предварительно предоставленный файл почтового индекса кошелька. Для приложений Oracle Call Interface, таких как cx_Oracle, нам просто нужны эти файлы из zip: sqlnet.ora, tnsnames.ora и cwallet.sso. Вам нужно будет создать / найти эти (или нужные вам) файлы.
Мои файлы:
sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = file)
(METHOD_DATA = (DIRECTORY="$TNS_ADMIN")))
SSL_SERVER_DN_MATCH=yes
tnsnames.ora
dbaccess = (description=
(address=(protocol=tcps)(port=1522)(host=whereever.com))
(connect_data=(service_name=whereever2.com))
(security=(ssl_server_cert_dn="CN=wherever2.com,O=Oracle Corporation,L=Redwood Shores,ST=California,C=US"))
)
cwallet.sso :
Я оставлю это вашему воображению ...
Я поместил эти три файла в /Users/cjones/Cloud
и настроил среду для их поиска:
$ export TNS_ADMIN=/Users/cjones/Cloud
Теперь я могу подключиться, используя имя подключения в файле tnsnames.ora
:
$ sqlplus -l cj/mypassword@dbaccess
SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 6 10:20:21 2018
Copyright (c) 1982, 2017, Oracle. All rights reserved.
Last Successful login time: Tue Jul 03 2018 13:00:06 +10:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
В cx_Oracle ваш dsn
тоже будет dbaccess
.