Configurer le chiffrement de colonne sur place avec le package DAC

S’applique à :SQL ServerAzure SQL Database

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.

Note

Si vous utilisez SQL Server 2019 (15.x) ou version ultérieure ou Azure SQL Database, et que votre instance ou base de données 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. Pour déclencher le chiffrement sur place avec un package DAC, l’utilisateur doit spécifier les propriétés EnclaveAttestationProtocol et EnclaveAttestationUrl .

Autorisations pour la publication d’un package DAC si Always Encrypted avec enclaves sécurisées est configuré

Pour publier le package DAC si Always Encrypted avec enclaves sécurisées est configuré dans la base de données DACPAC ou/et dans la base de données cible, vous aurez peut-être besoin de certaines ou de toutes les autorisations ci-dessous, en fonction des différences entre le schéma dans le DACPAC et le schéma de 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 plus d’informations sur les autorisations de magasin de clés, accédez à Provisionner des clés prenant en charge les enclaves et recherchez une section pertinente pour votre magasin de clés .

Étapes suivantes

Voir aussi