2009-08-13 4 views
24

Ich verwendete, um ein dts zu haben, das sql Server-Authentifizierungsverbindung hatte. Grundsätzlich wird das Benutzer-ID-Passwort im Paket selbst gespeichert. Wenn ich nun zu SSIS gehe, wird das Passwort nicht im Paket gespeichert. Ich habe das gesehen, als ich das Problem googlen wollte. http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/c720e694-2f58-483a-9cd7-3feb7de2db7b aber niemand scheint eine gute Auflösung gegeben zu haben. Kann jemand von euch bitte helfen? Vielen Dank im VorausSSIS-Verbindungs-Manager, der SQL-Kennwort nicht speichert

+0

Ja, ich denke, wir müssen für Windows Auth gehen ... Danke an alle – OpenSource

Antwort

24

Diese Antwort zeigt auf diesen Artikel: http://support.microsoft.com/kb/918760

Hier sind die vorgeschlagenen Lösungen - haben Sie sie ausgewertet?

  • Methode 1: Verwenden Sie ein Proxy-SQL Server-Agent-Konto

ein SQL Server-Agent-Proxy-Konto erstellen. Dieses Proxykonto muss eine Berechtigung verwenden, mit der der SQL Server-Agent den Job als Konto ausführen kann, das das Paket erstellt hat, oder als Konto mit den erforderlichen Berechtigungen.

Diese Methode funktioniert, um Geheimnisse zu entschlüsseln und erfüllt die Schlüsselanforderungen durch Benutzer. Diese Methode kann jedoch begrenzten Erfolg haben, da die Benutzerschlüssel des SSIS-Pakets den aktuellen Benutzer und den aktuellen Computer enthalten. Wenn Sie das Paket auf einen anderen Computer verschieben, kann diese Methode daher weiterhin fehlschlagen, auch wenn der Jobschritt das richtige Proxy-Konto verwendet. Zum Anfang

  • Methode 2: Stellen Sie die SSIS-Paket Protectionlevel-Eigenschaft auf Serverstorage

ändern Sie die SSIS-Paketprotectionlevel-Eigenschaft auf Serverstorage. Diese Einstellung speichert das Paket in einer SQL Server-Datenbank und ermöglicht die Zugriffssteuerung über SQL Server-Datenbankrollen. Zum Anfang

  • Methode 3: Stellen Sie die SSIS-Paket Protectionlevel-Eigenschaft auf EncryptSensitiveWithPassword

Ändern der SSIS-Paketprotectionlevel-Eigenschaft auf EncryptSensitiveWithPassword. Diese Einstellung verwendet ein Kennwort für die Verschlüsselung. Sie können dann die Jobschritt-Befehlszeile des SQL Server-Agents ändern, um dieses Kennwort einzufügen.

  • Methode 4: Verwenden Sie SSIS-Paketkonfigurationsdateien

Verwenden SSIS-Paketkonfigurationsdateien sensible Informationen zu speichern, und dann speichern Sie diese Konfigurationsdateien in einem gesicherten Ordner. Sie können dann die ProtectionLevel-Eigenschaft in DontSaveSensitive ändern, damit das Paket nicht verschlüsselt wird und nicht versucht wird, Geheimnisse im Paket zu speichern. Wenn Sie das SSIS-Paket ausführen, werden die erforderlichen Informationen aus der Konfigurationsdatei geladen. Stellen Sie sicher, dass die Konfigurationsdateien ausreichend geschützt sind, wenn sie vertrauliche Informationen enthalten.

  • Methode 5: Erstellen einer Paketvorlage

Für eine langfristige Lösung, eine Paketvorlage erstellen, die eine Schutzstufe verwendet, die von der Standardeinstellung abweicht. Dieses Problem tritt in zukünftigen Paketen nicht auf.

+0

Ich sah, dass dieser Link - es geht nicht mit diesem speziellen Problem. Mein Problem ist vorher in einer DTS-Verbindung, Sie können die Benutzer-ID/das Passwort direkt dort im Paket speichern, aber in SSIS können wir das anscheinend nicht. Der Link spricht davon, ein Paket von einem Job in SQL Agent auszuführen. – OpenSource

+1

Vielleicht könnten Sie den DTS NTLM verwenden und lassen Sie es durch das Proxy-Konto passieren. – Sam

+0

Nicht sicher, ob diese Option vorhanden ist. – Sam

6

Das entworfene Verhalten in SSIS ist zu verhindern, dass Passwörter in einem Paket gespeichert werden, weil es schlecht/nicht sicher ist, dies zu tun.

Verwenden Sie stattdessen Windows Auth, so dass Sie keine Geheimnisse in Paketen oder Konfigurationsdateien speichern, oder, wenn das in Ihrer Umgebung wirklich unmöglich ist (vielleicht haben Sie keine Windows-Domäne), dann müssen Sie ein verwenden Workaround wie beschrieben in http://support.microsoft.com/kb/918760 (Sam ist richtig, lesen Sie weiter in diesem Artikel). Die einfachste Antwort ist eine Konfigurationsdatei, die mit dem Paket mitgeliefert wird, aber dann müssen Sie sich sorgen, dass die Konfigurationsdatei sicher gespeichert wird, damit jemand sie nicht einfach lesen und die Anmeldeinformationen übernehmen kann.

8

Ich verwende eine Variable, um die gesamte Verbindungszeichenfolge zu speichern und sie an den ConnectionString-Ausdruck zu übergeben. Dies überschreibt alle Einstellungen für die Verbindung und ermöglicht das Speichern des Passworts.

0

Bitte überprüfen Sie die Konfigurationsdatei in dem Projekt gesetzt ID und dort Passwort, so dass Sie das Paket ausführen

12

Sie können in der Konfigurationsstring das Passwort speichern, indem Sie auf Eigenschaften gehen und das Hinzufügen von password = IhrKennwort aber sehr wichtig, setzen Sie ein Leerzeichen vor 'Passwort' und nach ';' wie unten dargestellt:

Data Source=50.21.65.225;User ID=vc_ssis; [email protected]; Initial Catalog=Sales; Provider=SQLNCLI10.1; Persist Security Info=True;Auto Translate=False; Application Name=SSIS-PKG_CustomerData-{2A666833-6095-4486-C04F-350CBCA5C49E}IDM11.Sales.dev;

hoffe, das hilft --Vijay K

+0

Diese Antwort hat mir geholfen. – Kalim

+0

Hat mir auch geholfen. Vielleicht nicht die beste Option für prod, aber funktioniert zum Testen –

+0

Ich kann nicht glauben, etwas so Besonderes wie die zusätzlichen Leerzeichen zählt. Andererseits habe ich lange genug programmiert, wo ich es glauben kann. Vielen Dank! – hurleystylee

0

Es gibt einfache Möglichkeit, dies zu tun. Ich weiß nicht, warum Leute komplizierte Antworten geben.

Doppelklicken Sie auf SSIS-Paket. Dann gehen Sie zum Verbindungsmanager, wählen Sie DestinationConnectionOLDB und fügen Sie dann das Passwort neben dem Login-Feld hinzu.

Beispiel: Data Source=SysproDB1;User ID=test;password=test;Initial Catalog=ASBuiltDW;Provider=SQLNCLI11;Auto Translate=false;

für SourceConnectionOLDB gleiche tun.

Verwandte Themen