Oracle
 sql >> Base de données >  >> RDS >> Oracle

python :connexion à une base de données Oracle à l'aide du portefeuille/tnsnames d'Oracle

Je ne peux pas aider à convertir le côté Java vers le côté C requis par cx_Oracle, mais peut-être que ce qui suit aidera à montrer ce dont cx_Oracle a besoin. Je vais utiliser un exemple basé sur Oracle Exadata Express, qui utilise un portefeuille pour se connecter, voir les instructions génériques pour connecter les langages de script à Exadata Express ici .

Votre configuration et vos fichiers exacts peuvent différer. Comme Anthony l'a indiqué, la configuration de la sécurité n'est pas spécifique à cx_Oracle. Des experts en sécurité plus expérimentés et utiles peuvent se cacher dans d'autres forums.

Pour Exadata Express, un fichier zip de portefeuille pré-fourni est téléchargé. Pour les applications Oracle Call Interface telles que cx_Oracle, nous avons juste besoin de ces fichiers du zip :sqlnet.ora, tnsnames.ora et cwallet.sso. Vous devrez créer/trouver ces fichiers (ou tout ce dont vous avez besoin).

Mes fichiers sont :

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 :Je laisse cela à votre imagination...

J'ai mis ces trois fichiers dans /Users/cjones/Cloud et paramétrez l'environnement pour les trouver :

$ export TNS_ADMIN=/Users/cjones/Cloud

Maintenant, je peux me connecter en utilisant le nom de connexion dans le tnsnames.ora fichier :

$ 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>

Dans cx_Oracle votre dsn serait dbaccess aussi.