sql >> Base de Datos >  >> RDS >> Sqlserver

Cifrado de copia de seguridad de la base de datos de SQL Server

Para administrar la seguridad de los datos respaldados por el sistema de archivos como archivos de respaldo de la base de datos, SQL Server proporciona la función de cifrado de respaldo. En este artículo, hablaremos sobre las opciones de cifrado disponibles en SQL Server para las copias de seguridad de la base de datos. Examinaremos más de cerca los detalles de uso, los beneficios y las prácticas recomendadas para cifrar la copia de seguridad de la base de datos de SQL Server durante el proceso de copia de seguridad.

¿Qué es el cifrado de copia de seguridad de la base de datos?

La necesidad de mantener los datos seguros crece dramáticamente. Junto con los datos, debe asegurarse de que los archivos de respaldo de su base de datos también estén protegidos, especialmente aquellos en un sistema de archivos de servidor. Los datos dentro de los archivos de copia de seguridad nativos de SQL Server se almacenan como texto sin formato en el sistema de archivos. Puede leerlo sin esfuerzo con un editor de texto.
Dependiendo de los tipos de datos utilizados en sus tablas, algunos datos son mucho más fáciles de leer que otros. La siguiente imagen muestra el archivo de copia de seguridad abierto en el editor de texto del Bloc de notas:

Como puede ver, el código T-SQL es visible y fácil de leer. Sin embargo, una vez que creamos la copia de seguridad con un cifrado, nadie tendrá la oportunidad de meterse debajo del capó.

La siguiente imagen muestra el mismo AdventureWorks2014.bak con un cifrado.

A partir de SQL Server 2014, el motor de la base de datos puede cifrar los datos mientras crea un archivo de copia de seguridad. Puede especificar el algoritmo de cifrado y el cifrador, ya sea un certificado o una clave asimétrica, mientras crea una copia de seguridad. La función de cifrado de copias de seguridad mejora la seguridad y funciona en cualquier dominio en el que se pueda utilizar SQL Server.

¿Qué se requiere?

Para cifrar la copia de seguridad de la base de datos, debe especificar un algoritmo de cifrado y un cifrador. Hay dos opciones de cifrado admitidas:

  • Algoritmo de cifrado:AES_128, AES_192, AES_256 y Triple_DES_3Key
  • Cifrador:un certificado o clave asimétrica

Si pierde accidentalmente el certificado o la clave asimétrica, nunca tendrá la oportunidad de restaurar el archivo de copia de seguridad. Por lo tanto, es muy importante mantener el certificado o clave asimétrica en un lugar seguro.

Beneficios del cifrado de copias de seguridad de bases de datos

  • Ayuda a proteger los datos.
  • Se puede aplicar a las bases de datos cifradas con la ayuda de Cifrado de datos transparente (TDE).
  • Admitido para copias de seguridad creadas por copia de seguridad administrada por SQL Server en Microsoft Azure que proporciona seguridad adicional para copias de seguridad fuera del sitio.
  • Admite numerosos algoritmos de cifrado hasta AES de 256 bits. Esto le permite seleccionar un algoritmo que cumpla con sus requisitos.
  • Posibilidad de integrar claves de cifrado con proveedores de Extended Key Management (EKM).

Cambios en las tablas del sistema

Al crear la copia de seguridad cifrada, parte de la información se registra en la MSDB base de datos del sistema:el algoritmo clave, el tipo de cifrado y la huella digital de cifrado utilizada.
El conjunto de respaldo La tabla contiene información para cada conjunto de copia de seguridad. Un conjunto de copia de seguridad contiene la copia de seguridad de una única operación de copia de seguridad correcta.
Las siguientes columnas:key_algorithm , encryptor_thumprint , tipo_cifrador de este DMV almacena información sobre si la copia de seguridad está encriptada, el tipo de encriptador y la huella digital del encriptador.

SELECT TOP 5
    name,
    key_algorithm,
    encryptor_thumbprint,
    encryptor_type
FROM msdb.dbo.backupset AS backupset with (NOLOCK)
WHERE type IN ('D', 'I') AND database_name = 'AdventureWorks2014'
ORDER BY backupset.backup_start_date  DESC
GO

Esto es lo que verá:

Para obtener más información sobre la tabla del conjunto de copia de seguridad, lea la siguiente página de documentación de MSDN:conjunto de copia de seguridad (Transact-SQL)

El conjunto de medios de copia de seguridad La tabla contiene información para cada conjunto de medios de copia de seguridad. La columna is_encrypted indica si la copia de seguridad está cifrada o no. 0 – no encriptado y 1 – encriptado. Inicialmente, este valor se establece en NULL, lo que indica un conjunto de medios de copia de seguridad no cifrado.

SELECT TOP 5
    media_set_id,
    is_encrypted, 
    is_compressed
FROM msdb.dbo.backupmediaset AS mediaset with (NOLOCK)
ORDER BY mediaset.media_set_id DESC
GO

El conjunto de resultados:

Métodos de cifrado de copias de seguridad de bases de datos

1. Con ayuda de dbForge Studio para SQL Server

Es posible crear un cifrado de copia de seguridad de la base de datos con la ayuda de SSMS, pero personalmente prefiero bForge Studio para SQL Server, un potente IDE para la gestión, administración, desarrollo, generación de informes de datos y análisis de SQL Server. Este IDE es como una navaja suiza para los desarrolladores de bases de datos. La herramienta proporciona características esenciales que están envueltas en una GUI intuitiva y bien diseñada. Para familiarizarse con las funciones clave, consulte el video introductorio de descripción general de dbForge Studio para SQL Server (04:03 min):

Una vez que haya descargado e instalado la herramienta, debe crear la conexión a la base de datos.

Tenga en cuenta que la función de cifrado de copia de seguridad se introdujo en SQL Server 2014. SQL Server Express no admite el cifrado durante la copia de seguridad.

1. Una vez que se haya conectado a una instancia requerida de SQL Server, en Database Explorer , haga clic en el nombre del servidor para expandir el árbol de servidores.

2. Haga clic con el botón derecho en una base de datos requerida, seleccione Tareas y luego haga clic en Copia de seguridad. . Aparece el cuadro de diálogo Copia de seguridad de la base de datos.

En la Conexión cuadro de lista, verifique el nombre de la conexión. Opcionalmente, puede seleccionar una conexión diferente de la lista.

3. Haga clic en Siguiente para continuar con Opciones de medios. .

La opción de cifrado está deshabilitada si selecciona agregar a la opción de conjunto de copia de seguridad existente en la página Opciones de medios del asistente de base de datos de copia de seguridad. Elija la copia de seguridad en un nuevo conjunto de medios y borre todos los conjuntos de copias de seguridad existentes.
Cree el certificado/clave antes de iniciar el proceso. El certificado o la clave asimétrica creada antes de iniciar el asistente de copia de seguridad de la base de datos aparecerá en el menú desplegable.

Seleccione Copia de seguridad en un nuevo conjunto de medios y borre todos los conjuntos de copias de seguridad existentes opción para crear una nueva copia de seguridad. Ingrese un nombre en el Nombre del conjunto de medios cuadro de texto y, opcionalmente, describa el conjunto de medios en la Descripción del conjunto de medios cuadro de texto.

4. Haga clic en Siguiente para continuar con las Opciones de copia de seguridad. .

En esta página, seleccione la opción Cifrar copia de seguridad. Seleccione el Algoritmo y el Certificado o Clave asimétrica. Haz clic en Copia de seguridad . El proceso toma varios segundos en mi caso.

2. Uso de instrucciones Transact-SQL

Usaremos la BBASE DE DATOS ACKUP declaración para crear una copia de seguridad de la base de datos y el REGISTRO DE RESPALDO para crear un archivo de copia de seguridad del registro de transacciones.

Copia de seguridad completa de la base de datos

Este tipo de copia de seguridad realiza una copia de seguridad de toda la base de datos. Incluye una parte del registro de transacciones para que la base de datos completa se pueda recuperar después de restaurar una copia de seguridad completa de la base de datos.

El siguiente código crea una base de datos completa cifrada copia de seguridad en la ubicación proporcionada utilizando el certificado especificado y el algoritmo de cifrado.

BACKUP DATABASE AdventureWorks2014
TO DISK = 'D:\DBMSSQLX64\Backup\AdventureWorks2014.bak'
WITH NAME = N'AdventureWorks2014, Compressed, Encrypted, Full',
    FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS = 5, COMPRESSION,
ENCRYPTION
(
    ALGORITHM = AES_256, SERVER CERTIFICATE = Cert1
)
GO

Tenga en cuenta que si nunca se ha realizado una copia de seguridad del certificado utilizado para el cifrado, aparecerá la siguiente advertencia cuando finalice la copia de seguridad. Asegúrese de realizar una copia de seguridad del certificado junto con la clave privada asociada con el certificado:

Advertencia :No se ha realizado una copia de seguridad del certificado utilizado para cifrar la clave de cifrado de la base de datos. Inmediatamente debe hacer una copia de seguridad del certificado y la clave privada asociada con el certificado. Si el certificado deja de estar disponible o si debe restaurar o adjuntar la base de datos en otro servidor, debe tener copias de seguridad tanto del certificado como de la clave privada o no podrá abrir la base de datos.

Copia de seguridad de base de datos diferencial

Al crear este tipo de copia de seguridad, la copia de seguridad de la base de datos o del archivo consta únicamente de las partes de la base de datos o del archivo que se modificaron desde la última copia de seguridad completa. Además, este tipo de copia de seguridad suele ocupar menos espacio que una copia de seguridad completa.

El siguiente código crea una base de datos diferencial cifrada copia de seguridad en la ubicación proporcionada utilizando el certificado especificado y el algoritmo de cifrado.

BACKUP DATABASE AdventureWorks2014
TO DISK = 'D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak'
WITH NAME = N'AdventureWorks2014, Compressed, Encrypted, Differential',
    FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS = 5,
 COMPRESSION, DIFFERENTIAL,
ENCRYPTION
(
    ALGORITHM = AES_256, SERVER CERTIFICATE = Cert1
)
GO

Copia de seguridad del registro de transacciones de la base de datos

La base de datos de SQL Server contiene uno o más archivos de registro de transacciones, además de archivos de datos, que registran todas las transacciones y modificaciones de la base de datos realizadas por cada transacción. La información de la transacción se recopila solo en las bases de datos donde el modo de recuperación de la base de datos está configurado como completo. recuperación o registro masivo recuperación.

El siguiente código crea un registro de transacciones de la base de datos cifrado copia de seguridad en la ubicación proporcionada utilizando el certificado especificado y el algoritmo de cifrado.

BACKUP LOG AdventureWorks2014
TO DISK = 'D:\DBMSSQLX64\Backup\AdventureWorks2014_LOG.bak'
WITH NAME = N'AdventureWorks2014, Compressed, Encrypted, TLog',
    FORMAT, INIT, SKIP, STATS = 5, COMPRESSION, ENCRYPTION
(
    ALGORITHM = AES_256, SERVER CERTIFICATE = Cert1
)
GO

3. Uso de PowerShell

SQL Server 2014 le permite hacer una copia de seguridad de la base de datos usando Windows Powershell. El siguiente código crea las opciones de cifrado y las usa como un valor de parámetro en el comando Backup-SqlDatabase:

$encryptionOption=New-SqlBackupEncryptionOption –Algorithm Aes256 –EncryptorType ServerCertificate –EncryptorName “Cert1”
Backup-SqlDatabase –ServerInstance Server_name –Database “AdventureWorks2014” –BackupFile “D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak” –CompressionOption On –EncryptionOption $encryptionOption

Comparando los enfoques mencionados anteriormente, no hay dudas de que crear copias de seguridad de bases de datos cifradas es una tarea bastante fácil cuando se cuenta con la herramienta adecuada, como dbForge Studio para SQL Server. de Devart.

Lectura adicional

Mi amigo, Pinal Dave, entusiasta de la tecnología de SQL Server, consultor independiente, autor de varios libros de SQL Server y cursos de Pluralsight, escribió un artículo excelente que le sugiero que siga leyendo:SQL SERVER:un uso práctico del cifrado de copia de seguridad