Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
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 (al actualizar una base de datos mediante un DACPAC), el esquema de la base de datos de destino se actualiza para que coincida con el esquema en el 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 consideraciones especiales para actualizar una base de datos cuando 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 | Acción |
|---|---|
| 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 se cifra tanto en DACPAC como en la base de datos, pero la columna del DACPAC usa un tipo de cifrado diferente o una clave de cifrado de columna diferente a 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.
Consideraciones sobre el rendimiento
Para realizar operaciones criptográficas, la herramienta que se use para implementar un DACPAC debe trasladar los datos fuera de la base de datos. La herramienta crea una tabla (o varias) con la configuración de cifrado deseada en la base de datos, carga todos los datos de las tablas originales, realiza las operaciones criptográficas solicitadas, carga los datos en las nuevas tablas y, después, intercambia las tablas originales por las nuevas. La ejecución de operaciones criptográficas puede llevar mucho tiempo. Durante ese tiempo, la base de datos no está disponible para escribir transacciones.
Nota:
Si usa SQL Server 2019 (15.x) y su instancia de SQL Server está configurada con un enclave seguro, puede ejecutar las operaciones criptográficas en contexto, sin sacar los datos de la base de datos. Vea Configuración del cifrado de columnas local mediante Always Encrypted con enclaves seguros. El cifrado local no está disponible para las implementaciones de DACPAC.
Permisos para publicar un paquete DAC si Always Encrypted está configurado
Para publicar el paquete DAC si Always Encrypted está configurado en DACPAC o en la base de datos de destino, es posible que necesite algunos o todos los permisos siguientes, en función de las diferencias entre el esquema en DACPAC y el esquema de base de datos de destino.
MODIFICAR CUALQUIER COLUMN MASTER KEY, MODIFICAR CUALQUIER COLUMN ENCRYPTION KEY, VIEW CUALQUIER COLUMN MASTER KEY DEFINICIÓN, VIEW CUALQUIER COLUMN ENCRYPTION KEY DEFINICIÓN
Si la operación de actualización desencadena una operación de cifrado de datos, también necesita permisos del almacén de claves para poder acceder a su clave maestra de columna y usarla. Para obtener información detallada sobre los permisos de almacén de claves, vaya a Creación y almacenamiento de claves maestras de columna para Always Encrypted y busque la sección correspondiente a su almacén de claves.
Contenido relacionado
- Always Encrypted
- Información general sobre la administración de claves de Always Encrypted
- Desarrollo de aplicaciones con Always Encrypted
- Consulta de columnas mediante Always Encrypted con SQL Server Management Studio
- Configuración de Always Encrypted con SQL Server Management Studio
- Configuración del cifrado de columna mediante el asistente para Always Encrypted
- Configuración del cifrado de columnas mediante Always Encrypted con PowerShell