Am Ende habe ich die Bibliothek von Codeplex benutzt .
Einfaches Setup und noch einfachere Ausführung. Große Bibliothek!
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, ImportFiles
dass sie die Identität des Windows-Benutzers haben, NetworkSQLUser
da 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 NetworkSQLUser
dem 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üsselring
c:/gnupg/secring.gpg' created gpg: keyring
c: /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.
Am Ende habe ich die Bibliothek von Codeplex benutzt .
Einfaches Setup und noch einfachere Ausführung. Große Bibliothek!