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

Authentification avec des clés publiques et cx_Oracle à l'aide de Python

Une solution possible consiste à implémenter Oracle Wallet. La création d'une entrée Oracle Wallet implique d'avoir :

  • un nom de résolution tnsname établi pour ladite instance
  • un nom d'utilisateur et un mot de passe

Exemple :Le sid Oracle avec lequel je travaille s'appelle ORCL, l'utilisateur avec lequel je dois me connecter s'appelle my_user. Dans votre fichier tnsnames.ora, vous avez déjà une entrée qui résout le nom/sid du service ORCL, créez-en une autre avec exactement les mêmes paramètres :

#initial local name entry:
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = my_ip)(PORT = 1528))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))

#create an additional local name entry:
ORCL_MY_USER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = my_ip)(PORT = 1528))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))

Une fois la nouvelle entrée résolue avec succès, créez l'entrée de portefeuille oracle pour le nom local ORCL_MY_USER. Ce nouveau nom local que vous allez utiliser dans votre script python pour vous connecter sans fournir ni coder en dur un mot de passe.

Exemple :