2016-05-06 2 views
0

J'ai deux bases de données activées Always Encrypted utilisant Azure Key Vault pour les clés. L'un est en azur et l'autre est local. Lorsque j'essaie d'utiliser la comparaison de données, il bloque Visual Studio et VS redémarre. Il ne plante pas lorsque la base de données n'a pas de tables activées AE. Je l'ai essayé avec et sans "Column Encryption Setting = enabled". J'utilise Data Comparison pour extraire nos bases de données d'Azure et tester à partir de ma base de données locale. J'utilise la version d'avril 2016.Avril 2016 publication des plantages SSDT VS 2015 lors de l'utilisation de la comparaison des données lors de la comparaison des tables utilisant Toujours chiffré

Merci d'avance pour tout conseil!

Les rapports Observateur d'événements:

Log Name:  Application 
Source:  .NET Runtime 
Date:   5/5/2016 5:56:26 PM 
Event ID:  1026 
Task Category: None 
Level:   Error 
Keywords:  Classic 
User:   N/A 
Computer:  DESKTOP-64U74F2 
Description: 
Application: devenv.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.InvalidCastException 
    at System.Data.SqlClient.SqlBuffer.get_SqlString() 
    at System.Data.SqlClient.SqlDataReader.GetSqlString(Int32) 
    at Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.SqlTableReader.get_CurrentRow() 
    at Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ComparisonSession.CompareTable(Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ITableReader, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ITableReader, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.TableComparisonSetting, Int64, Int64 ByRef, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.SessionSettings) 
    at Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ComparisonSession.CompareDatabases(Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.Database, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.Database, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.TableComparisonSettings, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.SessionSettings) 
    at Microsoft.VisualStudio.Data.Tools.DataCompare.UI.Editors.DataCompareDataPopulationJob.Run() 
    at Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager+JobBase.<Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager.IManageableJob.RunImpl>b__22_0(System.Object) 
    at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 
    at Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager+JobBase.Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager.IManageableJob.RunImpl(System.Object) 
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object) 
    at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 
    at System.Threading.ThreadPoolWorkQueue.Dispatch() 
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() 
+1

Bonjour Eric, je suis désolé d'apprendre que vous avez rencontré ce problème. Nous travaillons activement sur le support SSDT pour AlwaysEncrypted mais il s'agit clairement d'un bug qui doit être résolu. Je vais transmettre à notre équipe mais pour l'instant, est-ce que décocher la table avant de faire une comparaison permet de comparer d'autres tables? [Divulgation - Je travaille sur l'équipe SSDT] –

+0

Vous avez raison de dire que si je ne vérifie pas les colonnes cryptées, la comparaison sera terminée. J'ai fait un test de comparer une seule table avec une seule colonne cryptée et il a échoué comme prévu. –

+0

Existe-t-il une méthode permettant d'exporter ma base de données SQL de développement Azure toujours chiffrée sur mon serveur de base de données local pour pouvoir accéder rapidement à mes données et utiliser également AE sur le serveur local? –

Répondre

0

Une solution de contournement est de décocher la colonne cryptée, ce qui devrait permettre la comparaison de terminer sans cet accident se produit. Nous (l'équipe SSDT) ​​travaillons sur une solution plus élégante.