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.
Applies to:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Crea una clave de cifrado para cifrar de forma transparente una base de datos. Para obtener más información sobre transparent data encryption (TDE), consulte Transparent Data Encryption (TDE).
Transact-SQL convenciones de sintaxis
Sintaxis
-- Syntax for SQL Server
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER
{
CERTIFICATE Encryptor_Name |
ASYMMETRIC KEY Encryptor_Name
}
[ ; ]
-- Syntax for Parallel Data Warehouse
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
[ ; ]
Argumentos
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Especifica el algoritmo de cifrado para la clave de cifrado.
Advertencia
A partir de SQL Server 2016, todos los algoritmos distintos de AES_128, AES_192 y AES_256 están en desuso. Para usar algoritmos anteriores (no se recomienda), debe establecer la base de datos en el nivel de compatibilidad de base de datos 120 o inferior.
CIFRADO POR CERTIFICADO DE SERVIDOR Encryptor_Name
Especifica el nombre del sistema de cifrado utilizado para cifrar la clave de cifrado.
ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name Especifica el nombre de la clave asimétrica usada para cifrar la clave de cifrado de base de datos. Para cifrar la clave de cifrado de base de datos con una clave asimétrica, la clave asimétrica debe residir en un proveedor de administración extensible de claves.
Comentarios
Se requiere una clave de cifrado de base de datos para que una base de datos se pueda cifrar mediante el cifrado de datos transparente (TDE). Cuando se cifra una base de datos de forma transparente, toda la base de datos se cifra en el nivel de archivo, sin ninguna modificación especial de código. El certificado o la clave asimétrica que cifra la clave de cifrado de la base de datos debe encontrarse en la base de datos del master sistema.
Los certificados o claves asimétricas que se usan para TDE tienen un límite de tamaño de clave privada de 3072 bits.
Las instrucciones de cifrado de la base de datos se permiten únicamente en bases de datos de usuario.
La clave de cifrado de base de datos no se puede exportar desde la base de datos. Solo está disponible para el sistema, para los usuarios que tienen permisos de depuración en el servidor y para los usuarios que tienen acceso a los certificados que cifran y descifran la clave de cifrado de la base de datos.
La clave de cifrado de base de datos no tiene que volver a generarse cuando se cambia el propietario de una base de datos (dbo).
Una clave de cifrado de base de datos se crea automáticamente para una base de datos de SQL Database. No es necesario crear una clave mediante la CREATE DATABASE ENCRYPTION KEY instrucción .
Permisos
Requiere el permiso CONTROL en la base de datos y el permiso VIEW DEFINITION en el certificado o la clave asimétrica utilizados para cifrar la clave de cifrado de base de datos.
Ejemplos
Para obtener ejemplos adicionales con TDE, consulte Transparent Data Encryption (TDE), Enable TDE on SQL Server Using EKM y Extensible Key Management Using Azure Key Vault (SQL Server).
A. Creación de una clave de cifrado de base de datos
En el siguiente ejemplo se crea una clave de cifrado de base de datos mediante el algoritmo AES_256 y se protege la clave privada con un certificado denominado MyServerCert.
USE AdventureWorks2022;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
B. Restauración de una base de datos cifrada con TDE en una instancia diferente
Para restaurar una base de datos cifrada con TDE en una instancia de SQL Server diferente, primero debe importar el certificado que protege la clave de cifrado de base de datos. Realice una copia de seguridad del certificado y su clave privada desde el servidor de origen y, a continuación, cree el certificado en la instancia de destino antes de restaurar la base de datos.
En el servidor de origen, realice una copia de seguridad del certificado:
-- On the SOURCE server
USE master;
GO
BACKUP CERTIFICATE MyServerCert
TO FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
ENCRYPTION BY PASSWORD = '<strong_password>'
);
GO
En el servidor de destino, cree el certificado a partir de los archivos de copia de seguridad y, a continuación, restaure la base de datos:
-- On the TARGET server
USE master;
GO
CREATE CERTIFICATE MyServerCert
FROM FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
DECRYPTION BY PASSWORD = '<strong_password>'
);
GO
-- Now you can restore the TDE-encrypted database
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'C:\Backup\AdventureWorks2022.bak'
WITH MOVE 'AdventureWorks2022_Data' TO 'D:\Data\AdventureWorks2022.mdf',
MOVE 'AdventureWorks2022_Log' TO 'D:\Data\AdventureWorks2022.ldf';
GO
Importante
El certificado debe tener el mismo nombre y crearse a partir de los mismos archivos de copia de seguridad. Si el certificado no coincide, se produce un error de restauración con un error de clave de cifrado.
Contenido relacionado
- Transparent Data Encryption (TDE)
- cifrado SQL Server
- SQL Server y claves de cifrado de base de datos (Database Engine)
- Jerarquía de cifrado
- ALTER DATABASE SET Options (Transact-SQL)
- ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
- DROP DATABASE ENCRYPTION KEY (Transact-SQL)
- sys.dm_database_encryption_keys (Transact-SQL)
- BACKUP CERTIFICATE (Transact-SQL)
- CREATE CERTIFICATE (Transact-SQL)