Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este artigo descreve como habilitar a criptografia de dados transparente (TDE) no SQL Server para proteger uma chave de criptografia de banco de dados usando uma chave assimétrica armazenada em um módulo de gerenciamento extensível de chaves (EKM) com Transact-SQL.
A TDE criptografa o armazenamento de um banco de dados inteiro usando uma chave simétrica chamada chave de criptografia do banco de dados. A chave de criptografia do banco de dados também pode ser protegida usando um certificado, que é protegido pela chave mestra do banco de dados (DMK) 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 Criptografia de dados transparente (TDE). Para obter informações sobre como configurar o TDE quando o SQL Server está sendo executado em uma máquina virtual do Azure, consulte Gerenciamento extensível de chaves usando o Cofre de Chaves do Azure (SQL Server). Para obter informações sobre como configurar o TDE usando uma chave no cofre de chaves do Azure, consulte Usar o SQL Server Connector com recursos de criptografia do SQL.
Limitações
Você deve ser um usuário altamente privilegiado (como um administrador de 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 utilizador.
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 login baseado em uma chave assimétrica. Os usuários não podem entrar usando esse login, mas o Mecanismo de Banco de Dados pode autenticar-se 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 que você faça backup da chave assimétrica, você deve criar um backup e armazená-lo em um local seguro.
As opções e parâmetros exigidos pelo seu provedor de EKM podem diferir 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. As funções fixas de servidorALTER SETTINGSe serveradmin mantêm implicitamente a permissão.Requer
ALTER ANY CREDENTIALpermissão.Requer
ALTER ANY LOGINpermissão.Requer
CREATE ASYMMETRIC KEYpermissão.Requer
CONTROLpermissão no banco de dados para criptografar o banco de dados.
Utilize o Transact-SQL
Copie os arquivos fornecidos pelo provedor EKM para um local apropriado no computador do SQL Server. Neste exemplo, usamos a
C:\EKM_Filespasta.Instale certificados no computador conforme exigido pelo seu provedor de EKM.
Observação
O SQL Server não fornece um provedor de EKM. Cada provedor de EKM pode ter procedimentos diferentes para instalar, configurar e autorizar usuários. Para concluir esta etapa, consulte a documentação do seu provedor de 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 Banco de Dados SQL, Instância Gerenciada SQL e Azure Synapse Analytics
- sp_configure (Transact-SQL)
- CRIAR PROVEDOR CRIPTOGRÁFICO (Transact-SQL)
- CRIAR CREDENCIAL (Transact-SQL)
- CRIAR CHAVE ASSIMÉTRICA (Transact-SQL)
- CRIAR LOGIN (Transact-SQL)
- CRIAR CHAVE DE CRIPTOGRAFIA DE BANCO DE DADOS (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- ALTERAR BASE DE DADOS (Transact-SQL)