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: