In diesem Artikel beschreibe ich die Vorgehensweise, wie man in Informatica Powercenter die Zugangsdaten eines technischen Users verschlüsselt in den Umgebungsvariablen ablegen kann. Auf diese Weise kann man pmcmd Aufrufe schreiben, bei denen statt den Zugangsdaten im Klartext, Variablen verwendet werden.

Oftmals werden Informatica Workflows in einem Projekt über einen externen Scheduler gestartet. Dabei wird die Standard Kommandozeilen API von Informatica Powercenter genutzt, bei der man über den Aufruf „pmcmd startworkflow“ Workflows triggern kann. Neben verschiedenen anderen Parametern, muss man in diesem Aufruf auch den Benutzernamen und das Passwort eines Informatica Nutzers angeben. Ich empfehle meinen Kunden immer wieder, hier unbedingt einen technischen Benutzer und nicht die Benutzerdaten eines Teammitglieds zu verwenden. Verlässt der Mitarbeiter, dessen Benutzerdaten man eingertagen hat, z.B. das Projekt, dann funktionieren die Aufrufe nicht mehr, falls das Benutzerprofil in der Adminconsole entfernt wird.

Informatica bietet für dieses Problem eine sehr wirkungsvolle Möglichkeit:

Im ersten Schritt muss ein technischer User in der Adminconsole angelegt werden, der der Gruppe Operator zugeordnet ist. Bei allen Connections und Ordnern ist darauf zu achten, dass die Gruppe Operator Execute Rechte besitzt. Damit das Passwort des technischen Users auch in den Umgebungsvariablen verschlüsselt abgelegt werden kann, wird dieses über die Kommandozeile kodiert. Dazu wechselt man in den Ordner /server/bin und führt dort das Kommando pmpasswd gefolgt vom Passwort aus:

pmpasswd <Passwort>

pmpasswd

pmpasswd

Das verschlüsselte Passwort (zwischen –> und <–) sollte man sich für die weitere Verwendung sichern. Ich verwende als Variablen für die Logindaten des technischen Users immer PMUSER (Name des technischen Users in Klartext) und PMPASS (verschlüssletes Passwort).

Für pmcmd startworkflow Aufrufe in einem Command-Task innerhalb eines Informatica Workflows müssen die beiden Variablen PMUSER und PMPASS in der Adminconsole (Integration Service->Prozesse->Umgebungsvariablen) abgelegt werden. Im Falle von Skripten auf Kommandozeilenebene sind die Variablen unter UNIX im Benutzerprofil (z.B. .bash_profile) und unter Windows als Systemvariablen anzugeben.

SInd diese Schritte erfolgreich abgelschlossen, kann man diese Vairablen zukünftig in pmcmd Aufrufe nutzen:

pmcmd startworkflow -sv <Integration_Service> -d <Domain> -uv <Variable des technischen Usernames> -pv <Variable des technischen Userpasswortes> -f <Ordner> -wait <Workflowname>

pmcmd startworkflow -sv IS_E -d DOM_E -uv PMUSER -pv PMPASS -f DWH -wait wf_LOAD_DWH