J'ai fait cela des dizaines de fois, mais tout récemment, j'ai rencontré cette erreur. Voici les étapes que j'ai suivies pour arriver ici:
Cela ne prend que quelques secondes pour que ça bombe et j'obtiens l'erreur:
Error SQL72014: .Net SqlClient Data Provider: Msg 33161, Level 15, State 1, Line 1 Database master keys without password are not supported in this version of SQL Server
Error SQL72045: Script execution error. The executed script: CREATE MASTER KEY;
J'ai suivi le même processus pour la même base de données il y a un mois et demi. Tout fonctionnait-il bien? J'ai la version 14.0.61021.0 de SSDT installée - je ne suis pas sûre que cela compte ou non. J'utilise aussi SQL Server 2016 Developer Edition (v13.0.1722.0).
OK, la façon dont j'ai résolu le problème était la suivante:
Dans cette base de données, exécutez le script suivant:
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = [password here];
Je n'ai pas vu de documentation à ce sujet, mais apparemment, lorsque vous créez une base de données SQL Azure, celle-ci crée une clé principale de base de données (DMK) sans mot de passe. Dans SQL Server 2016, cela n'est pas correct. Espérons que cela aide quelqu'un d'autre.
Remarque: je pouvais le faire, car je ne voulais que les données de la base de données d'origine pour actualiser ma copie de développement local. Je n'ai pas complètement étudié les implications de cela.
J'ai eu le même problème. Après avoir parlé au support technique Azure, ils ont découvert que le problème était dû à la création d'une clé principale de base de données vierge pour chiffrer les informations d'identification de stockage pour l'audit (l'audit est un paramètre facultatif).
Notez que les paramètres d'audit de la base de données sont hérités des paramètres du serveur.
Quoi qu’il en soit, le travail autour duquel ils sont arrivés était le suivant:
DROP MASTER KEY
.Ensuite, l'exportation fonctionne comme prévu. Espérons que Azure corrigera bientôt ce problème afin que l'audit et l'exportation puissent fonctionner ensemble.
Mise à jour du 21 mars 2017 Meilleure solution de contournement par les États membres
Comme le correctif prendra un certain temps à déployer, ils ont également suggéré un solution alternative, qui ne nécessitera aucune étape supplémentaire (comme désactiver l’audit ou les étapes du blog) de votre côté pour éviter ce problème. Une fois l'audit activé, veuillez mettre à jour le fichier maître clé et définissez le mot de passe. Définition d'un mot de passe pour le maître existant clé permettra d'atténuer le problème. En outre, la définition du mot de passe ne sera pas l’audit d’impact et cela continuera à fonctionner. La syntaxe pour ajouter le Le mot de passe est le suivant:
-- execute in the user database
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = ‘##############’;
Le lien contient également un script PowerShell que vous pouvez utiliser pour supprimer l’instruction SQL incriminée du fichier .bacpac
.
Correction d'un bacpac corrompu créé en supprimant la clé principale.
La suggestion d’exécution du script RemoveMasterKey a également créé un fichier bacpac corrompu dans mon cas en insérant  dans le fichier model.xml à plusieurs endroits.
Il existe un moyen de modifier le bacpac en extrayant les fichiers. Suppression des caractères incriminés dans le fichier model.xml, puis génération d'une nouvelle somme de contrôle pour le fichier Origin.xml.
une fois cette opération effectuée, la sauvegarde des fichiers avec l'extension .bacpac vous permet d'importer le backpac.
Correctif trouvé à: http://inworksllc.com/editing-sql-database-Azure-bacpac-files/
générateur de sommes de contrôle: https://github.com/gertd/dac/tree/master/drop/debug
Étapes fournies:
1) Mettez à jour le fichier Zip avec le fichier model.xml modifié.
2) Renommez le fichier Zip avec l'extension bacpac
3) Exécutez dacchksum.exe /i:database.bacpac (où database.bacpac est le nom du fichier bacpac)
4) Mettez à jour Origin.xml dans le fichier bacpac avec la nouvelle valeur fournie par dacchksum.exe.