Migración de datos a o desde columnas mediante Always Encrypted con el Asistente para importación y exportación de SQL Server
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
El Asistente para importación y exportación de SQL Server es una herramienta que permite copiar datos desde un origen a un destino. En este documento se describe cómo usar el Asistente para importación y exportación de SQL Server si un origen o un destino es una base de datos de SQL Server que contiene columnas protegidas con Always Encrypted.
Escenarios de migración
Con el Asistente para importación y exportación de SQL Server, puede implementar los escenarios siguientes para migrar datos hacia o desde columnas cifradas.
Cifrar datos de texto no cifrado durante la migración
Si el origen de datos contiene datos de texto no cifrado y el destino es una base de datos de SQL Server que contiene columnas cifradas, puede usar el Asistente para importación y exportación de SQL Server para recuperar los datos de texto no cifrado del origen, cifrarlos y copiar los datos cifrados (texto cifrado) a las columnas cifradas en la base de datos de destino. En este escenario de migración, el origen de datos puede ser cualquier almacén de datos que el Asistente para importación y exportación de SQL Server admita. Por ejemplo, un archivo, una base de datos de SQL Server o una base de datos en otro sistema de base de datos.
Para asegurarse de que el Asistente para importación y exportación de SQL Server puede cifrar los datos, debe habilitar Always Encrypted para la conexión de base de datos de destino y debe tener acceso a las claves que protegen los datos en las columnas de la base de datos de destino. Para obtener más información, vea Habilitar y deshabilitar Always Encrypted para una conexión de base de datos y Permisos para cifrar o descifrar datos durante la migración.
Descifrar datos cifrados durante la migración
Si va a migrar datos almacenados en columnas de base de datos cifradas en una base de datos de SQL Server, puede configurar el Asistente para importación y exportación de SQL Server para descifrar los datos y copiar los datos descifrados (texto no cifrado) en un destino, que puede ser cualquier almacén de datos que el Asistente para importación y exportación de SQL Server admita, por ejemplo, un archivo, una base de datos de SQL Server o una base de datos en otro sistema de base de datos.
Para asegurarse de que el Asistente para importación y exportación de SQL Server puede descifrar los datos, debe habilitar Always Encrypted para la conexión de base de datos de origen y debe tener acceso a las claves que protegen los datos en las columnas de la base de datos de origen. Para obtener más información, vea Habilitar y deshabilitar Always Encrypted para una conexión de base de datos y Permisos para cifrar o descifrar datos durante la migración.
Volver a cifrar los datos durante la migración
Si va a copiar los datos de las columnas cifradas en una base de datos de SQL Server de origen en columnas cifradas de la misma base de datos de SQL Server o en otra, puede configurar el Asistente para importación y exportación de SQL Server para descifrar los datos después de recuperarlos del origen y volver a cifrarlos antes de insertarlos en las columnas cifradas en la base de datos de destino. Use este método si el esquema de las columnas de destino (por ejemplo, los tipos de datos de columna, los tipos de cifrado y las claves de cifrado de columna) es diferente del esquema de las columnas de origen.
Para asegurarse de que el Asistente para importación y exportación de SQL Server puede cifrar y descifrar los datos, debe habilitar Always Encrypted para la conexión de base de datos de origen y de destino, y debe tener acceso a las claves que protegen los datos tanto en las columnas de la base de datos de origen como en las de destino. Para obtener más información, vea Habilitar y deshabilitar Always Encrypted para una conexión de base de datos y Permisos para cifrar o descifrar datos durante la migración.
Mantener los datos cifrados durante la migración
Si va a copiar los datos de las columnas cifradas en una base de datos de SQL Server de origen en columnas cifradas de la misma base de datos de SQL Server o en otra, y las columnas de destino utilizan exactamente el esquema (incluidos los mismos tipos de datos, tipos de cifrado y claves de cifrado de columnas) como columnas de origen, puede configurar el Asistente para importación y exportación de SQL Server para recuperar texto cifrado de las columnas de origen e insertar los datos cifrados (texto cifrado) en una columna cifrada en la base de datos de SQL Server de destino.
En este escenario, puede usar cualquier proveedor de datos que admita SQL Server para conectarse a la base de datos de origen o de destino de SQL Server. Si usa un proveedor que admite Always Encrypted para conectarse a la base de datos de destino, debe asegurarse de que Always Encrypted esté deshabilitado para la conexión de base de datos. Para obtener más información, vea habilitar y deshabilitar Always Encrypted para una conexión de base de datos.
También debe asegurarse de que la entidad de seguridad de base de datos (usuario) que usa el Asistente para importación y exportación de SQL Server para conectarse a la base de datos de destino esté configurada con la opción ALLOW_ENCRYPTED_VALUE_MODIFICATIONS
establecida en ON
. Esta opción suprime las comprobaciones de metadatos criptográficos del servidor en operaciones de copia masiva, lo que permite al asistente insertar los datos cifrados de forma masiva en la base de datos de destino sin descifrar los datos. Para obtener más información, vea Carga masiva de datos cifrados a columnas protegidas por Always Encrypted.
Habilitar y deshabilitar Always Encrypted para una conexión de base de datos
Si el escenario de migración requiere que el Asistente para importación y exportación de SQL Server pueda cifrar o descifrar los datos, debe configurar la conexión de base de datos de SQL Server de origen y/o la conexión de base de datos de SQL Server de destino mediante un proveedor de datos que admita Always Encrypted. También debe habilitar Always Encrypted para la conexión de base de datos de origen o de destino.
Puede usar cualquier proveedor de datos para una conexión si no necesita que el asistente cifre o descifre los datos en esa conexión.
Los siguientes proveedores de datos del Asistente para importación y exportación de SQL Server admiten Always Encrypted.
- Proveedor de datos .NET Framework para SQL Server
- Asegúrese de que la máquina en la que se ejecuta el asistente use .NET Framework 4.6.1 o posterior.
- Si desea habilitar Always Encrypted para una conexión, establezca
Column Encryption Setting
enEnabled
en las propiedades de conexión. Para deshabilitar Always Encrypted, establezcaColumn Encryption Setting
enDisabled
. Para obtener más información, vea Conectarse a SQL Server con el Proveedor de datos de .NET Framework para SQL Server y Habilitar Always Encrypted para consultas de la aplicación.
- Proveedor de datos .NET Framework para ODBC.
- Instale Microsoft ODBC driver 13.1 o posterior.
- Si desea habilitar Always Encrypted para una conexión, establezca
Column Encryption
enEnabled
en las propiedades de conexión. Para deshabilitar Always Encrypted, establezcaColumn Encryption
enDisabled
. Para obtener más información, vea Conectarse a SQL Server con el controlador ODBC para SQL Server y Habilitar Always Encrypted en una aplicación ODBC.
- Si desea habilitar Always Encrypted para una conexión, establezca
- Instale Microsoft ODBC driver 13.1 o posterior.
Permisos para cifrar o descifrar datos durante la migración
Para cifrar o descifrar datos almacenados en la base de datos de origen o de destino de SQL Server, necesita tener los permisos VIEW ANY COLUMN MASTER KEY DEFINITION y VIEW ANY COLUMN ENCRYPTION KEY DEFINITION en la base de datos de origen. Además, necesitará permisos de almacén de claves para poder acceder a la clave maestra de columna y usarla. Para obtener información detallada sobre los permisos de almacén de claves necesarios para las operaciones de administració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.
Pasos siguientes
- Consulta de columnas mediante Always Encrypted con SQL Server Management Studio
- Desarrollo de aplicaciones con Always Encrypted