Jag kan inte hjälpa till med att konvertera Java-sidan till C-sidan som behövs av cx_Oracle men kanske följande hjälper till att visa vad cx_Oracle behöver. Jag använder ett exempel baserat på Oracle Exadata Express, som använder en plånbok för att ansluta, se de allmänna instruktionerna för att ansluta skriptspråk till Exadata Express här .
Din exakta konfiguration och dina filer kan skilja sig åt. Som Anthony indikerade, är säkerhetsinställningen inte specifik för cx_Oracle. Mer erfarna och hjälpsamma säkerhetsexperter kan gömma sig i andra forum.
För Exadata Express laddas en förlevererad plånbokszip-fil ned. För Oracle Call Interface-applikationer som cx_Oracle behöver vi bara dessa filer från zip:sqlnet.ora, tnsnames.ora och cwallet.sso. Du måste skapa/hitta dessa (eller vad du behöver) filer.
Mina filer är:
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 :Jag överlåter detta till din fantasi...
Jag lägger de tre filerna i /Users/cjones/Cloud
och ställ in miljön för att hitta dem:
$ export TNS_ADMIN=/Users/cjones/Cloud
Nu kan jag ansluta med anslutningsnamnet i tnsnames.ora
fil:
$ sqlplus -l cj/[email protected]
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>
I cx_Oracle din dsn
skulle vara dbaccess
också.