Jeg kan ikke hjælpe med at konvertere Java-siden til C-siden, der er nødvendig af cx_Oracle, men måske vil følgende hjælpe med at vise, hvad cx_Oracle har brug for. Jeg vil bruge et eksempel baseret på Oracle Exadata Express, som bruger en tegnebog til at oprette forbindelse, se de generiske instruktioner til at forbinde scriptsprog til Exadata Express her .
Din nøjagtige konfiguration og filer kan variere. Som Anthony antydede, er sikkerhedsopsætningen ikke specifik for cx_Oracle. Mere erfarne og hjælpsomme sikkerhedseksperter lurer muligvis i andre fora.
For Exadata Express downloades en forudleveret tegnebogs-zip-fil. Til Oracle Call Interface-applikationer som cx_Oracle har vi bare brug for disse filer fra zip:sqlnet.ora, tnsnames.ora og cwallet.sso. Du bliver nødt til at oprette/finde disse (eller hvad du har brug for) filer.
Mine filer er:
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 :Jeg overlader det til din fantasi...
Jeg lagde disse tre filer i /Users/cjones/Cloud
og indstil miljøet til at finde dem:
$ export TNS_ADMIN=/Users/cjones/Cloud
Nu kan jeg oprette forbindelse ved at bruge forbindelsesnavnet 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
ville være dbaccess
også.