Configurer le chiffrement de colonne en utilisant Always Encrypted avec un package DAC

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Un package d’application de la couche Données (DAC), également appelé DACPAC, est une unité portable de déploiement de base de données SQL Server qui définit tous les objets SQL Server, notamment les tables et les colonnes à l’intérieur des tables. Quand vous publiez un DACPAC sur une base de données (quand vous mettez à niveau une base de données avec un DACPAC), le schéma de la base de données cible est mis à jour pour correspondre au schéma dans le DACPAC. Vous pouvez publier un DACPAC en utilisant l’Assistant Mise à niveau d’une application de la couche Données dans SQL Server Management Studio, PowerShell ou sqlpackage.

Cet article traite des considérations spéciales relatives à la mise à niveau d’une base de données quand le DACPAC et/ou la base de données cible contient des colonnes protégées avec Always Encrypted. Si le schéma de chiffrement d’une colonne dans le DACPAC diffère du schéma de chiffrement pour une colonne existante dans la base de données cible, la publication du DACPAC entraîne le chiffrement, le déchiffrement ou le rechiffrement des données stockées dans la colonne. Consultez la table ci-dessous pour plus d’informations.

Condition Action
La colonne est chiffrée dans le fichier DACPAC et n’est pas chiffrée dans la base de données. Les données de la colonne sont chiffrées.
La colonne n’est pas chiffrée dans le fichier DACPAC et est chiffrée dans la base de données. Les données de la colonne sont déchiffrées (le chiffrement est supprimé de la colonne).
La colonne est chiffrée à la fois dans le fichier DACPAC et la base de données, mais la colonne dans le fichier DACPAC utilise un type de chiffrement et/ou une clé de chiffrement de colonne autre que la colonne correspondante dans la base de données. Les données de la colonne sont déchiffrées, puis rechiffrées pour correspondre à la configuration de chiffrement dans le fichier DACPAC.

Le déploiement d’un package DAC peut également entraîner la création ou la suppression d’objets de métadonnées pour des clés principales de colonne ou des clés de chiffrement de colonne pour Always Encrypted.

Considérations relatives aux performances

Pour effectuer des opérations de chiffrement, l’outil que vous utilisez pour déployer un DACPAC doit déplacer les données en dehors de la base de données. L’outil crée une ou plusieurs tables avec la configuration de chiffrement souhaitée dans la base de données, charge toutes les données des tables d’origine, effectue les opérations de chiffrement demandées, charge les données dans les nouvelles tables, puis remplace les tables d’origine par les nouvelles tables. L’exécution des opérations de chiffrement peut prendre beaucoup de temps. Pendant ce temps, votre base de données n’est pas disponible pour l’écriture de transactions.

Note

Si vous utilisez SQL Server 2019 (15.x) et que votre instance SQL Server est configurée avec une enclave sécurisée, vous pouvez exécuter des opérations de chiffrement sur place, sans déplacer de données hors de la base de données. Consultez Configurer le chiffrement de colonne sur place en utilisant Always Encrypted avec enclaves sécurisées. Notez que le chiffrement sur place n’est pas disponible pour les déploiements DACPAC.

Autorisations pour la publication d’un package DAC si Always Encrypted est configuré

Pour publier un package DAC si Always Encrypted est configuré dans le DACPAC et/ou dans la base de données cible, vous pouvez avoir besoin de tout ou partie des autorisations ci-dessous, en fonction des différences entre le schéma du DACPAC et le schéma de la base de données cible.

ALTER ANY COLUMN MASTER KEY, ALTER ANY COLUMN ENCRYPTION KEY, VIEW ANY COLUMN MASTER KEY DEFINITION, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

Si l’opération de mise à niveau déclenche une opération de chiffrement de données, vous devez également disposer d’autorisations de magasin de clés pour accéder à votre clé principale de colonne et l’utiliser. Pour obtenir des informations détaillées sur les autorisations de magasin de clés, accédez à Créer et stocker des clés principales de colonne pour Always Encrypted, puis recherchez une section pertinente pour votre magasin de clés.

Étapes suivantes

Voir aussi