Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Applies to:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Cria uma chave de criptografia para criptografar de forma transparente um banco de dados. Para obter mais informações sobre transparent data encryption (TDE), consulte Transparent Data Encryption (TDE).
Transact-SQL convenções de sintaxe
Sintaxe
-- 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 o algoritmo de criptografia para a chave de criptografia.
Aviso
A partir do SQL Server 2016, todos os algoritmos diferentes de AES_128, AES_192 e AES_256 foram preteridos. Para usar algoritmos mais antigos (não recomendado) você deve definir o nível de compatibilidade do banco de dados para 120 ou inferior.
CRIPTOGRAFIA POR ENCRYPTOR_NAME DE CERTIFICADO DO SERVIDOR
Especifica o nome do criptografador usado para criptografar a chave de criptografia do banco de dados.
ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name Especifica o nome da chave assimétrica usada para criptografar a chave de criptografia do banco de dados. Para criptografar a chave de criptografia do banco de dados com uma chave assimétrica, a chave assimétrica deve residir em um provedor de gerenciamento de chaves extensível.
Comentários
Uma chave de criptografia de banco de dados é necessária antes que um banco de dados possa ser criptografado usando TDE (Transparent Data Encryption). Quando for criptografado de maneira transparente, todo o banco de dados será criptografado no nível de arquivo, sem nenhuma modificação especial de código. O certificado ou a chave assimétrica que criptografa a chave de criptografia do banco de dados deve estar localizada no banco de dados do master sistema.
Os certificados ou as chaves assimétricas usadas para TDE são limitados a um tamanho de chave privada igual a 3.072 bits.
As instruções de criptografia de banco de dados são permitidas apenas em bancos de dados de usuários.
A chave de criptografia do banco de dados não pode ser exportada do banco de dados. Ele está disponível apenas para o sistema, para usuários que têm permissões de depuração no servidor e para usuários que têm acesso aos certificados que criptografam e descriptografam a chave de criptografia do banco de dados.
A chave de criptografia do banco de dados não precisa ser regenerada quando um proprietário de banco de dados (dbo) é alterado.
Uma chave de criptografia do banco de dados é criada automaticamente para um Banco de Dados SQL. Você não precisa criar uma chave usando a instrução CREATE DATABASE ENCRYPTION KEY .
Permissões
Requer a permissão CONTROL no banco de dados e a permissão VIEW DEFINITION na chave assimétrica ou no certificado usado para criptografar a chave de criptografia do banco de dados.
Exemplos
Para obter exemplos adicionais usando TDE, consulte Transparent Data Encryption (TDE), Enable TDE em SQL Server Usando EKM e Extensible Key Management Using Azure Key Vault (SQL Server).
A. Criar uma chave de criptografia de banco de dados
O exemplo a seguir cria uma chave de criptografia de banco de dados denominada AES_256 e protege a chave privada com um certificado denominado MyServerCert.
USE AdventureWorks2022;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
B. Restaurar um banco de dados criptografado por TDE para uma instância diferente
Para restaurar um banco de dados criptografado por TDE para uma instância de SQL Server diferente, primeiro você deve importar o certificado que protege a chave de criptografia do banco de dados. Faça backup do certificado e de sua chave privada do servidor de origem e crie o certificado na instância de destino antes de restaurar o banco de dados.
No servidor de origem, faça backup do 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
No servidor de destino, crie o certificado com base nos arquivos de backup e restaure o banco de dados:
-- 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
O certificado deve ter o mesmo nome e ser criado com base nos mesmos arquivos de backup. Se o certificado não corresponder, a restauração falhará com um erro de chave de criptografia.
Conteúdo relacionado
- Transparent Data Encryption (TDE)
- SQL Server Encryption
- SQL Server e Chaves de Criptografia de Banco de Dados (Database Engine)
- Hierarquia de criptografia
- 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)