2016-05-11 13 views
1

Derzeit ich Oracle anschließe eine Zeichenfolge wie folgt verwendet:Verbindung zu Oracle mit cx_Oracle mit gesichertem Passwort

OracleURL = "{USER}/{PWD}@{SERVER}:{PORT}/{SERVICE}".format(USER=O_USER, 
                  PWD=O_PWD, 
                  SERVER=O_SERVER, 
                  PORT=O_PORT, 
                  SERVICE=O_SERVICE 
                  ) 

try: 
    con = cx_Oracle.connect(OracleURL) 
except Exception as MSG: 
    exit(33) 

Das Problem ist, von einem Sicherheitsstandpunkt aus gesehen, ich weiß nicht, wie Sie sicher speichern mein Passwort. Als Testversion habe ich das Passwort in eine Parameterdatei geschrieben, die in 64bit codiert ist (was eine unglaublich niedrige Sicherheitsstufe ist). Haben Sie eine gute Methode, um das Passwort effizient zu speichern und zu verwenden?

+0

Ich fand, dass der einfachste Weg ist, Benutzer zur Verwendung seiner Anmeldeinformationen aufzufordern, so dass ich nichts speichern muss, wenn ich eine Verbindung zur DB herstelle. Dies funktioniert jedoch nur, wenn das Skript mit dem Benutzer interagiert. Ansonsten erstelle ich normalerweise einen neuen Benutzer für das Skript mit sehr eingeschränkten Rechten. Aber ich weiß, dass das keine richtige Lösung ist. – J91321

Antwort

0

Ich habe gesehen, wie Benutzer das Passwort in Umgebungsvariablen übergeben.

Aber Sie möchten möglicherweise mit einem Oracle "Secure External Password Store" aussehen. Zusammengefasst erstellen Sie eine Brieftasche, fügen einige Anmeldeinformationen hinzu, richten die Dateien Oracle sqlnet.ora und tnsname.ora so ein, dass die Brieftasche verwendet wird, und stellen dann eine Verbindung mit dem Dienst db her - die SQL * Plus-Syntax lautet . Dies ist in der Oracle documentation beschrieben.