CREATE DATABASE ENCRYPTION KEY (Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) simParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Cria uma chave de criptografia que é usada para criptografar um banco de dados de maneira transparente.Creates an encryption key that is used for transparently encrypting a database. Para obter mais informações sobre criptografia de banco de dados transparente, consulte Transparent Data Encryption (TDE).For more information about transparent database encryption, see Transparent Data Encryption (TDE).

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

-- 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   
[ ; ]  

ArgumentosArguments

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Especifica o algoritmo de criptografia que é usado para a chave de criptografia.Specifies the encryption algorithm that is used for the encryption key.

Observação

Começando com o SQL Server 2016, todos os algoritmos, exceto AES_128, AES_192 e AES_256, foram preteridos.Beginning with SQL Server 2016, all algorithms other than AES_128, AES_192, and AES_256 are deprecated. Para usar algoritmos mais antigos (não recomendado) você deve definir o nível de compatibilidade do banco de dados para 120 ou inferior.To use older algorithms (not recommended) you must set the database to database compatibility level 120 or lower.

ENCRYPTION BY SERVER CERTIFICATE Encryptor_NameENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
Especifica o nome do criptografador usado para criptografar a chave de criptografia do banco de dados.Specifies the name of the encryptor used to encrypt the database encryption key.

ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_NameENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
Especifica o nome da chave assimétrica usada para criptografar a chave de criptografia do banco de dados.Specifies the name of the asymmetric key used to encrypt the database encryption key. Para criptografar a chave de criptografia de banco de dados com uma chave assimétrica, essa chave deve residir em um provedor de gerenciamento extensível de chaves.In order to encrypt the database encryption key with an asymmetric key, the asymmetric key must reside on an extensible key management provider.

RemarksRemarks

Uma chave de criptografia de banco de dados é exigida para que um banco de dados possa ser criptografado com o uso da TDE (Criptografia de banco de dados transparente).A database encryption key is required before a database can be encrypted by using Transparent Database Encryption (TDE). 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.When a database is transparently encrypted, the whole database is encrypted at the file level, without any special code modifications. O certificado ou a chave assimétrica usados para criptografar a chave de criptografia de banco de dados devem estar localizados no banco de dados do sistema mestre.The certificate or asymmetric key that is used to encrypt the database encryption key must be located in the master system database.

As instruções de criptografia de banco de dados são permitidas apenas em bancos de dados de usuários.Database encryption statements are allowed only on user databases.

A chave de criptografia de banco de dados não pode ser exportada do banco de dados.The database encryption key cannot be exported from the database. Ela está disponível apenas para o sistema, para usuários com permissões de depuração no servidor e para usuários com acesso aos certificados que criptografam e descriptografam a chave de criptografia de banco de dados.It is available only to the system, to users who have debugging permissions on the server, and to users who have access to the certificates that encrypt and decrypt the database encryption key.

A chave de criptografia de banco de dados não precisa ser gerada novamente quando um dbo (proprietário de banco de dados) é alterado.The database encryption key does not have to be regenerated when a database owner (dbo) is changed.

Uma chave de criptografia do banco de dados é criada automaticamente para um banco de dados Banco de Dados SQLSQL Database.A database encryption key is automatically created for a Banco de Dados SQLSQL Database database. Você não precisa criar uma chave usando a instrução CREATE DATABASE ENCRYPTION KEY.You do not need to create a key using the CREATE DATABASE ENCRYPTION KEY statement.

PermissõesPermissions

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.Requires CONTROL permission on the database and VIEW DEFINITION permission on the certificate or asymmetric key that is used to encrypt the database encryption key.

ExemplosExamples

Para obter exemplos adicionais usando a TDE, veja Transparent Data Encryption (TDE), Habilitar TDE no SQL Server usando EKM e Gerenciamento Extensível de Chaves usando o Azure Key Vault (SQL Server).For additional examples using TDE, see Transparent Data Encryption (TDE), Enable TDE on SQL Server Using EKM, and Extensible Key Management Using Azure Key Vault (SQL Server).

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.The following example creates a database encryption key by using the AES_256 algorithm, and protects the private key with a certificate named MyServerCert.

USE AdventureWorks2012;  
GO  
CREATE DATABASE ENCRYPTION KEY  
WITH ALGORITHM = AES_256  
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;  
GO  

Consulte TambémSee Also

TDE (Transparent Data Encryption) Transparent Data Encryption (TDE)
Criptografia do SQL Server SQL Server Encryption
Chaves de criptografia do SQL Server e banco de dados (Mecanismo de Banco de Dados) SQL Server and Database Encryption Keys (Database Engine)
Hierarquia de criptografia Encryption Hierarchy
Opções ALTER DATABASE SET (Transact-SQL) ALTER DATABASE SET Options (Transact-SQL)
ALTER DATABASE ENCRYPTION KEY (Transact-SQL) ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
DROP DATABASE ENCRYPTION KEY (Transact-SQL) DROP DATABASE ENCRYPTION KEY (Transact-SQL)
sys.dm_database_encryption_keys (Transact-SQL)sys.dm_database_encryption_keys (Transact-SQL)