2017-01-17 4 views
0

Ich versuche, neu erstellte Tabellen in der Zieldatenbank nach Veröffentlichung zu finden. Mit DAC Fx kann ich die Unterschiede finden und die Tabellen löschen, nachdem ich die neu erstellte Tabelle in eine andere Datenbank verschoben habe.SQL Server DAC FX Schemakomparison SchemaCompareDatabaseEndpoint schlägt fehl mit IntegratedSecuirty

Ich habe den Code mit IntegratedSecurity entwickelt und getestet. Fehler beim Starten von Computern mit SQLServer-Logins.

In dem Moment, in dem ich IntegratedSecurity auf true umstellen, funktioniert es. Ist es ein Fehler?

private void Analyse() 
{ 
      try 
      { 
       var sourceDacpac = new SchemaCompareDacpacEndpoint(DacPacSrc);     
       var csb = new SqlConnectionStringBuilder(ConnectionString); 
       csb.IntegratedSecurity = false; 
       var targetDatabase =new SchemaCompareDatabaseEndpoint(csb.ToString()); 


       var comparison = new SchemaComparison(sourceDacpac, targetDatabase); 
       comparison.Options.DropObjectsNotInSource = true; 
       var result = comparison.Compare(); 
       if (result.GetErrors().Any()) 
       { 
        throw new Exception("Compare failed " + result.GetErrors().FirstOrDefault().Message); 
       } 

       var delta = new List<string>(); 
       if (result.Differences != null && result.Differences.Any()) 
       { 
        var deltaTables = result.Differences.Where(x => x.Name == "Table" && x.UpdateAction == SchemaUpdateAction.Delete); 
        delta = deltaTables.Select(x => x.TargetObject.Name.ToString()).ToList(); 
       } 

       FindingDeltaCompleted?.Invoke(this, new DeltaEventArgs(delta)); 

      } 
      catch (Exception ex) 
      { 
       Logging.HandleException(ex); 
      } 


     } 

Antwort

2

Versuchen Sie die Einstellung Persist Security Info=True in der SQL-Authentifizierungsverbindungszeichenfolge.

SSDT/DAC Fx speichert Verbindungszeichenfolgen in der Registrierung unter HKEY_CURRENT_USER\SOFTWARE\Microsoft\SSDT\ConnectionStrings. Wenn Persist Security Info=True nicht festgelegt ist, wird das Kennwort beim Laden der Verbindungszeichenfolgen aus der Registrierung nicht wiederhergestellt.

+0

Es funktioniert so vielen Dank –

Verwandte Themen