Configuración del cifrado de columnas en contexto con paquete DAC

Se aplica a: SQL Server Azure SQL Database

Un paquete de aplicación de capa de datos (DAC), también conocido como DACPAC, es una unidad portátil de implementación de bases de datos de SQL Server que define todos los objetos de SQL Server, incluidas las tablas y las columnas que contienen. Al publicar un DACPAC en una base de datos (cuando se actualiza una base de datos mediante un DACPAC), el esquema de la base de datos de destino se actualiza para que coincida con el esquema del DACPAC. Puede publicar un DACPAC mediante el Asistente para actualizar la aplicación de capa de datos en SQL Server Management Studio, PowerShell o sqlpackage.

En este artículo se abordan las consideraciones especiales que hay que tener en cuenta para actualizar una base de datos cuando el DACPAC o la base de datos de destino contienen columnas protegidas con Always Encrypted. Si el esquema de cifrado de una columna del DACPAC difiere del esquema de cifrado de una columna existente en la base de datos de destino, cuando se publica el DACPAC, se cifran, se descifran o se vuelven a cifrar los datos almacenados en la columna. Consulte la tabla siguiente para obtener más información.

Condición Action
La columna está cifrada en el DACPAC y no está cifrada en la base de datos. Los datos de la columna se cifrarán.
La columna no está cifrada en el DACPAC y está cifrada en la base de datos. Los datos de la columna se descifrarán (se quitará el cifrado de la columna).
La columna está cifrada en el DACPAC y en la base de datos, pero la columna del DACPAC usa un tipo de cifrado diferente o una clave de cifrado de columnas diferentes de los que usa la columna correspondiente de la base de datos. Los datos de la columna se descifrarán y luego se volverán a cifrar para que coincida con la configuración de cifrado del DACPAC.

La implementación de un paquete DAC también puede dar lugar a la creación o la eliminación de objetos de metadatos para las claves maestras de columna o las claves de cifrado de columna para Always Encrypted.

Nota:

Si usa SQL Server 2019 (15.x) o posterior o Azure SQL Database, y su instancia o base de datos de SQL Server está configurada con un enclave seguro, puede ejecutar operaciones de cifrado en contexto sin mover los datos fuera de la base de datos. Vea Configuración del cifrado de columnas en contexto mediante Always Encrypted con enclaves seguros. Para desencadenar el cifrado en contexto con un paquete DAC, el usuario debe especificar las propiedades EnclaveAttestationProtocol y EnclaveAttestationUrl.

Permisos para publicar un paquete DAC si se configura Always Encrypted con enclaves seguros

Para publicar un paquete DAC si Always Encrypted con enclaves seguros está configurado en el DACPAC o/y en la base de datos objetivo, puede que necesite algunos o todos los permisos siguientes, dependiendo de las diferencias entre el esquema en el DACPAC y el esquema de la base de datos objetivo.

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

Si la operación de actualización desencadena una operación de cifrado de datos, también necesita permisos de almacén de claves para acceder a la clave maestra de columna y usarla. Para obtener información detallada sobre los permisos del almacén de claves, vaya a Provisión de claves habilitadas para enclave y busque la sección correspondiente a su almacén de claves.

Pasos siguientes

Consulte también