Ik kan het niet helpen met het converteren van de Java-kant naar de C-kant die cx_Oracle nodig heeft, maar misschien helpt het volgende om te laten zien wat cx_Oracle nodig heeft. Ik zal een voorbeeld gebruiken op basis van Oracle Exadata Express, dat een portemonnee gebruikt om verbinding te maken, zie de algemene instructies voor het verbinden van scripttalen met Exadata Express hier .
Uw exacte configuratie en bestanden kunnen verschillen. Zoals Anthony aangaf, is de beveiligingsconfiguratie niet specifiek voor cx_Oracle. Er kunnen meer ervaren en behulpzame beveiligingsexperts op andere forums op de loer liggen.
Voor Exadata Express wordt een vooraf geleverd zipbestand van de portemonnee gedownload. Voor Oracle Call Interface-toepassingen zoals cx_Oracle hebben we alleen deze bestanden uit de zip nodig:sqlnet.ora, tnsnames.ora en cwallet.sso. U moet deze (of wat u maar nodig heeft) bestanden maken/vinden.
Mijn bestanden zijn:
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 :Ik laat dit aan uw verbeelding over...
Ik heb die drie bestanden in /Users/cjones/Cloud
. geplaatst en stel de omgeving in om ze te vinden:
$ export TNS_ADMIN=/Users/cjones/Cloud
Nu kan ik verbinding maken met de verbindingsnaam in de tnsnames.ora
bestand:
$ 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>
In cx_Oracle uw dsn
zou zijn dbaccess
ook.