2013-03-20 7 views
5

Czy somhow można ustawić ProtectionLevel pakietu SSIS do DontSaveSensitive i do użytku ciąg połączenia z hasłem z pliku konfiguracyjnego podczas tworzenia pakietu Visual Studio?Jak korzystać DontSaveSensitive i plik konfiguracyjny xml podczas rozwoju pakietu SSIS

Mam pakiet np. Pakiet 1 z ProtectionLevel = DontSaveSensitive. Ten pakiet używa połączenia z menedżera połączeń, np. Connection1.

Package1 umożliwiło użyciu pliku konfiguracyjnego file1.dtsConfig z ciągu połączenia określonej konfiguracji. Ten ciąg połączenia ma hasło w nim:

<DTSConfiguration> 
    <DTSConfigurationHeading> 
     <DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.3.2013 12:08:27"/> 
    </DTSConfigurationHeading> 
    <Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String"> 
     <ConfiguredValue>Data Source=.;Password=Password123;User ID=MyUser;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;</ConfiguredValue> 
    </Configuration> 
</DTSConfiguration> 

Teraz podczas otwierania połączenia z menedżer połączeń w Visual Studio, pole tekst Hasło jest puste a pakiet doen't wykonać. Dlaczego nie użyto hasła podanego w ciągu połączenia w pliku konfiguracyjnym file1.dtsConfig?

enter image description here

Odpowiedz

4

końcu znaleźliśmy sposób, jak to zrobić:

  • Zmień ProtectionLevel do DontSaveSensitive
  • Tworzenie pliku Configuraton z ciągu połączenia
  • ręcznie edytować ten plik konfiguracyjny: dodać hasło ciąg połączenia w przypadku połączenia z uwierzytelnianiem SQL Server

Następnie pakiet SSIS załaduje hasło połączenia zawierające hasło z pliku konfiguracyjnego, nawet w Visual Studio. W oknie dialogowym połączenia menedżera połączenia hasło nie będzie wyświetlane, ale pakiet będzie działał za pomocą ciągu połączenia z konfiguracji.

+0

Problem z użyciem 'EncryptSensitiveWithUserKey' kiedy dzielisz swój pakiet do kogoś innego lub jakiś inny użytkownik próbuje uruchomić pakiet, wykonanie będzie' fail'. Ta opcja powinna być używana, gdy nie masz planu wdrożenia pakietu lub integracji pakietu ze swoim zespołem lub udzielania pozwolenia innemu użytkownikowi na uruchamianie pakietu, gdy wdrażasz go w serwerze sql lub systemie plików – praveen

+0

No ale ja używam pakietów kreowane przez innego użytkownika na innym komputerze z ustawieniami EncryptSensitiveWithUserKey na moim komputerze teraz. Kiedy określiłem plik konfiguracyjny, ciąg połączenia jest teraz odczytywany z config (nie z pakietu), a pakiet działa ok nawet poziom ochrony jest ustawiony na EncryptSensitiveWithUserKey i nie jestem autorem pakietu. – dee

+0

To wydaje się dziwne. sprawdzić ten artykuł na http://www.mssqltips.com/sqlservertip/2091/securing-your-ssis-packages-using-package-protection-level/ – praveen

0

SSIS odbędzie ciąg połączenia z Config File tylko podczas runtime .Nawet jeśli zaznaczysz pole wyboru Save my Password, SSIS nie zbawi hasło opcja value.This jest vald tylko podczas BIDS session. Tak więc następnym razem, gdy otworzysz pakiet przy użyciu BIDS, ponownie musisz wprowadzić poświadczenia w Visual Studio w przeciwnym razie pakiet nie będzie compile, ale pakiet będzie zawsze poprawnie wykonywany podczas run time, jeśli podałeś connection string w config file.

Zgodnie MSDN wyraźnie stwierdza, że ​​

Nie zapisuj wrażliwe: zapobiega właściwości, które są oznaczone wrażliwą były zapisywane w pakiecie, a zatem sprawia, że ​​dane wrażliwe niedostępne dla innych użytkowników.

0

Jest to przypadek także kiedy pakiet został ustawiony przy pierwszym użyciu EncryptSensitiveWithUserKey, następnie zmieniono na poziomie -Ochrona DontSaveSensitive. Musisz ręcznie edytować plik .conmgr i usunąć element DTS: Password i umieścić hasło w łańcuchu połączenia, ponieważ użytkownik dee napisał mądrze powyżej.