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.
Aplica-se:SQL Server
Este artigo descreve como habilitar a TDE (Transparent Data Encryption) no SQL Server para proteger uma chave de criptografia de banco de dados usando uma chave assimétrica armazenada em um módulo EKM (gerenciamento extensível de chaves) com o Transact-SQL.
A TDE criptografa o armazenamento de um banco de dados inteiro usando uma chave simétrica chamada de chave de criptografia de banco de dados. A chave de criptografia de banco de dados também pode ser protegida usando um certificado, que é protegido pela DMK (chave mestra do banco de dados) do master banco de dados. Para obter mais informações sobre como proteger a chave de criptografia do banco de dados usando o DMK, consulte TDE (Transparent Data Encryption). Para obter informações sobre como configurar o TDE quando o SQL Server estiver em execução em uma Máquina Virtual do Azure, consulte Gerenciamento extensível de chaves usando o Azure Key Vault (SQL Server). Para obter informações sobre como configurar a TDE usando uma chave no Cofre de Chaves do Azure, veja Usar o Conector do SQL Server com recursos de criptografia do SQL.
Limitações
Você deve ser um usuário com altos privilégios (como um administrador do sistema) para criar uma chave de criptografia de banco de dados e criptografar um banco de dados. O módulo EKM deve ser capaz de autenticar esse usuário.
Na inicialização, o Mecanismo de Banco de Dados deve abrir o banco de dados. Você deve criar uma credencial que será autenticada pelo EKM e adicioná-la a um logon baseado em uma chave assimétrica. Os usuários não podem entrar usando esse logon, mas o Mecanismo de Banco de Dados pode se autenticar com o dispositivo EKM.
Se a chave assimétrica armazenada no módulo EKM for perdida, o banco de dados não poderá ser aberto pelo SQL Server. Se o provedor de EKM permitir o backup da chave assimétrica, crie o backup e armazene-o em um local seguro.
As opções e os parâmetros exigidos pelo provedor EKM podem ser diferentes do que é fornecido no exemplo de código a seguir. Para obter mais informações, consulte seu provedor de EKM.
Permissões
Este artigo usa as seguintes permissões:
Para alterar uma opção de configuração e executar a
RECONFIGUREinstrução, você deve receber a permissão no nível doALTER SETTINGSservidor. A permissãoALTER SETTINGSé implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin.Requer
ALTER ANY CREDENTIALpermissão.Requer
ALTER ANY LOGINpermissão.Requer
CREATE ASYMMETRIC KEYpermissão.CONTROLRequer permissão no banco de dados para criptografar o banco de dados.
Usar Transact-SQL
Copie os arquivos fornecidos pelo provedor de EKM em um local apropriado no computador SQL Server. Neste exemplo, usamos a
C:\EKM_Filespasta.Instale os certificados no computador, como requerido pelo provedor de EKM.
Observação
O SQL Server não fornece um provedor EKM. Cada provedor de EKM pode ter procedimentos diferentes para instalar, configurar e autorizar os usuários. Para concluir esta etapa, consulte a documentação do provedor EKM.
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, selecione Nova Consulta.
Copie e cole o exemplo a seguir na janela de consulta e selecione Executar.
-- Enable advanced options. EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXECUTE sp_configure 'EKM provider enabled', 1; GO RECONFIGURE; GO -- Create a cryptographic provider, which we have chosen to call "EKM_Prov," based on an EKM provider CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll'; GO -- Create a credential that will be used by system administrators. CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = '<password>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; GO -- Add the credential to a high privileged user such as your -- own domain login in the format [DOMAIN\login]. ALTER LOGIN [Contoso\Mary] ADD CREDENTIAL sa_ekm_tde_cred; GO -- create an asymmetric key stored inside the EKM provider USE master; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key'; GO -- Create a credential that will be used by the Database Engine. CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2', SECRET = '<secret>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; -- Add a login used by TDE, and add the new credential to the login. CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred; GO -- Create the database encryption key that will be used for TDE. USE AdventureWorks2022; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key; GO -- Alter the database to enable transparent data encryption. ALTER DATABASE AdventureWorks2022 SET ENCRYPTION ON; GO
Conteúdo relacionado
- Criptografia de dados transparente para o Banco de Dados SQL, a Instância Gerenciada de SQL e o Azure Synapse Analytics
- sp_configure (Transact-SQL)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- CRIAR CREDENCIAL (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- CREATE LOGIN (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- ALTERAR BASE DE DADOS (Transact-SQL)