Importieren Sie den PGP-Schlüssel für Windows-Benutzer für SSIS

1849
Colin

Ich habe Kleopatra verwendet, um einen PGP-Schlüssel zu generieren.

In SQL Server führe ich ein SSIS-Paket aus, das Dateien mit dem obigen Schlüssel entschlüsseln soll. Die SSIS-Pakete werden so ausgeführt, ImportFilesdass sie die Identität des Windows-Benutzers haben, NetworkSQLUserda sie mit einem anderen Server kommunizieren müssen, um die Datei abzurufen.

Beim ersten Ausführen des Pakets erhielt ich die folgende Fehlermeldung:

Wird als Benutzer ausgeführt: VS2 \ NetworkSQLUser. gpg: Mit ELG-Schlüssel verschlüsselt, ID XXXXXXXX gpg: Entschlüsselung fehlgeschlagen: Kein geheimer Schlüssel Microsoft (R) SQL Server-Paketausführungsprogramm Version 11.0.2100.60 für 64-Bit-Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. Gestartet: 15:50:29 Uhr Fehler: 2014-01-23 15: 50: 29,95 Code: 0xC0029151 Quelle: Transaktionsdatei entschlüsseln Prozess ausführen Beschreibung: Beim Ausführen von "C: \ Programme (x86) \ GNU \ GnuPG \ gpg2" .exe "" --batch --passphrase-fd 0 --decrypt-files \ vs3 \ FTP \ Outgoing \ 20140122_001.TRN.gpg "at" ", Der Prozess-Exit-Code war" 2 ", während der erwartete" 0 "war . End Error DTExec: Die Paketausführung hat DTSER_FAILURE (1) zurückgegeben. Begonnen: 15:50:29 pm Fertig: 15:50:29 pm Verstrichen: 0,782 Sekunden. Die Paketausführung ist fehlgeschlagen. Der Schritt ist fehlgeschlagen.

Ich habe einen Artikel gelesen, in dem es heißt, um dieses Problem zu beheben, gehen Sie folgendermaßen vor:

Für das Dienstkonto, unter dem ich den SQL-Agenten ausgeführt habe, wurde das Zertifikat nicht unter dieser Benutzer-ID registriert. Ich hatte das Zertifikat nur in Kleopatra für die Entwicklungsbenutzer-ID importiert, mit der ich mich angemeldet habe, und nicht für das Dienstkonto. Ich habe das Zertifikat einfach in das Dienstkonto-Profil importiert und alles hat funktioniert.

Ich habe NetworkSQLUserdem Schlüssel in Kleopatra die Benutzer-ID von hinzugefügt, aber ich bin nicht zu 100% sicher, dass das stimmt!

Ich habe dann das Paket erneut ausgeführt und folgende Fehlermeldung erhalten:

Wird als Benutzer ausgeführt: VS2 \ NetworkSQLUser. gpg: schlüsselringc:/gnupg/secring.gpg' created gpg: keyringc: /gnupg/pubring.gpg 'erstelltes gpg: mit ELG-Schlüssel verschlüsselt, ID XXXXXXXX gpg: Entschlüsselung fehlgeschlagen: Kein geheimer Schlüssel Microsoft (R) SQL Server Execute Package Utility Version 11.0.2100.60 für 64-Bit-Copyright (C) Microsoft Corporation . Alle Rechte vorbehalten. Gestartet: 17:17:16 Uhr Fehler: 2014-01-23 17: 17: 17.40 Code: 0xC0029151 Quelle: Transaktionsdatei entschlüsseln Prozess ausführen Beschreibung: Beim Ausführen von "C: \ Programme (x86) \ GNU \ GnuPG \ gpg2" .exe "" --batch --passphrase-fd 0 --decrypt-files \ vs3 \ FTP \ Outgoing \ 20140122_001.TRN.gpg "at" ", Der Prozess-Exit-Code war" 2 ", während der erwartete" 0 "war . End Error DTExec: Die Paketausführung hat DTSER_FAILURE (1) zurückgegeben. Begonnen: 17:17:16 Uhr Fertig: 17:17:17 Uhr abgelaufen: 0,735 Sekunden. Die Paketausführung ist fehlgeschlagen. Der Schritt ist fehlgeschlagen.

Ich habe auch versucht, das dtsx-Paket aus dem GnuPG-Ordner auszuführen.

Ich weiß nicht, wohin ich gehen soll.

Wenn ich Informationen vermisst habe (mein erstes Mal mit SSIS, PGP und Zertifikaten), dann lassen Sie es mich wissen.

1

1 Antwort auf die Frage

1
Colin

Am Ende habe ich die Bibliothek von Codeplex benutzt .

Einfaches Setup und noch einfachere Ausführung. Große Bibliothek!