Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Python:Verbindung zu einer Oracle-Datenbank mithilfe von Oracles Wallet/tnsnames

Ich kann nicht helfen, die Java-Seite in die C-Seite zu konvertieren, die von cx_Oracle benötigt wird, aber vielleicht hilft das Folgende zu zeigen, was cx_Oracle benötigt. Ich werde ein Beispiel verwenden, das auf Oracle Exadata Express basiert, das eine Brieftasche zum Verbinden verwendet, siehe die allgemeinen Anweisungen zum Verbinden von Skriptsprachen mit Exadata Express hier .

Ihre genaue Konfiguration und Dateien können abweichen. Wie Anthony angedeutet hat, ist das Sicherheits-Setup nicht spezifisch für cx_Oracle. Erfahrenere und hilfreichere Sicherheitsexperten finden sich möglicherweise in anderen Foren.

Für Exadata Express wird eine vorab bereitgestellte Wallet-Zip-Datei heruntergeladen. Für Oracle Call Interface-Anwendungen wie cx_Oracle benötigen wir nur diese Dateien aus der ZIP-Datei:sqlnet.ora, tnsnames.ora und cwallet.sso. Sie müssen diese (oder was auch immer Sie brauchen) Dateien erstellen/finden.

Meine Dateien sind:

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 :Das überlasse ich deiner Fantasie...

Ich habe diese drei Dateien in /Users/cjones/Cloud abgelegt und stellen Sie die Umgebung ein, um sie zu finden:

$ export TNS_ADMIN=/Users/cjones/Cloud

Jetzt kann ich mich mit dem Verbindungsnamen in tnsnames.ora verbinden Datei:

$ 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 Ihren dsn wäre dbaccess auch.