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

Authentifizierung mit öffentlichen Schlüsseln und cx_Oracle mit Python

Eine mögliche Lösung ist die Implementierung von Oracle Wallet. Das Erstellen eines Oracle Wallet-Eintrags erfordert Folgendes:

  • ein tnsname-Auflösungsname, der für die besagte Instanz eingerichtet wurde
  • einen Benutzernamen und ein Passwort

Beispiel:Die Oracle-Sid, mit der ich arbeite, heißt ORCL, der Benutzer, mit dem ich mich verbinden muss, heißt my_user. In Ihrer tnsnames.ora-Datei haben Sie bereits einen Eintrag, der den ORCL-Dienstnamen/Sid auflöst, erstellen Sie einen weiteren mit genau denselben Parametern:

#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)))

Nachdem der neue Eintrag erfolgreich aufgelöst wurde, erstellen Sie den Oracle Wallet-Eintrag für den lokalen Namen ORCL_MY_USER. Diesen neuen lokalen Namen werden Sie in Ihrem Python-Skript verwenden, um eine Verbindung herzustellen, ohne ein Passwort anzugeben oder fest zu codieren.

Beispiel: