Ich versuche, eine Oracle EXPDP (Oracle Data Pump) -Befehl über Powershell, mit einer verschlüsselten Passwort-Datei, so dass ich meine Datenbank-Passwort aus meinem git Repo halten kann. Hier ist, was mein Code die Datei zu erzeugen, wie folgt aussieht:benutze verschlüsselte Passwort als Parameter für CMD in Powershell
"Password1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\Backups\dbPassword.txt"
Offensichtlich Password1 nicht das eigentliche Passwort, aber Sie bekommen die Idee ...
Ich möchte ein Skript schreiben, zu entschlüsseln, dass Datei, nehmen Sie dann den entschlüsselten "Password1" -Wert und verwenden Sie ihn im expdb-Befehl als mein db-Passwort. Hier ist, was ich mit so weit habe kommen:
$dbPassword = cat C:\backups\dbPassword.txt | convertto-securestring -AsPlainText -Force
$timeStamp = "$(get-Date -f MMddyyyy)"
$expdb = 'EXPDP'
$dbCredential = 'system/'+$dbPassword
$expdbDirectory = 'directory=backups'
$expdbFull = 'full=Y'
$expdbDRFileNamePrefix = 'EXPALL_DR_' + $timeStamp
$expdbDRFileNameDMP = $expdbDRFileNamePrefix + '.DMP'
$expdbDRFileNameLOG = $expdbDRFileNamePrefix + '.log'
$expdbDRFile = 'file=' + $expdbDRFileNameDMP
$expdbDRLog = 'log=' + $expdbDRFileNameLOG
$command = $expdb + ' ' + $dbCredential + ' ' + $expdbDirectory + ' ' + $expdbFull + ' ' + $expdbDRFile + ' ' + $expdbDRLog
Invoke-Expression $command
Als ich dies ausführen, ich die folgende Fehlermeldung erhalten:
EXPDP :
At line:1 char:1
+ EXPDP system/System.Security.SecureString directory=backups full=Y fi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Export: Release 11.2.0.1.0 - Production on Fri Oct 14 16:09:55 2016
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
UDE-01017: operation generated ORACLE error 1017
ORA-01017: invalid username/password; logon denied
Username:
Ich nehme an, ich brauche das Äquivalent eines „toString“ Befehl verwenden um den Text für die Befehlszeile vollständig zu formatieren. Weiß jemand, was das ist, oder ob es eine Möglichkeit gibt, das PSCredential-Objekt dazu zu verwenden?
Danke!
Warum verschlüsseln Sie die Datei? Wenn Sie die Datei .gitigure, können Sie auch einfach den pw-Klartext beibehalten und dieses Problem umgehen. –
so lassen Sie das Passwort als Nur-Text auf dem Server, aber ignorieren es in git? Ich nehme an, aber die Verschlüsselung bietet zusätzliche Sicherheit, auch wenn es nur Sicherheit durch Unklarheit ist. –
Ein verschlüsseltes Passwort entschlüsselt sich nicht magisch, nur weil Sie es wollen. Ihre Kommandozeile erwartet sowieso ein Klartext-Passwort, also ist es sinnlos, ein unverschlüsseltes Passwort aus einer Datei zu lesen, zu verschlüsseln und dann wieder zu entschlüsseln, um es tatsächlich benutzen zu können. –