Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Erreur SSMS 2016 lors de l'importation du bacpac Azure SQL v12 :clés principales sans mot de passe non prises en charge

J'ai eu le même problème. Après avoir parlé au support Azure, ils ont découvert que le problème était dû au fait qu'une clé principale de base de données vide est créée 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 qu'ils ont trouvé était :

  1. Désactiver l'audit sur le serveur (ou la base de données)
  2. Déposez la clé principale de la base de données avec DROP MASTER KEY commande.

Ensuite, l'exportation fonctionne comme prévu. Espérons qu'Azure résoudra ce problème rapidement afin que l'audit et l'exportation puissent fonctionner ensemble.

Mise à jour du 21 mars 2017 Meilleure solution de contournement à partir de MS

Comme le correctif prendra un certain temps à être déployé, ils ont également suggéré une solution alternative, qui ne nécessitera aucune étape supplémentaire (comme la désactivation de l'audit ou les étapes du blog) de votre côté pour éviter ce problème. Une fois l'audit activé, veuillez mettre à jour la clé principale et définir le mot de passe. La définition d'un mot de passe pour la clé principale existante réduira le problème. De plus, la définition du mot de passe n'aura pas d'incidence sur l'audit et il continuera à fonctionner. La syntaxe pour ajouter le mot de passe est la suivante :

-- 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 .bacpac fichier.