Compartilhar via


Habilitar a TDE usando EKM

Este tópico descreve como habilitar a TDE (transparent data encryption) no SQL Server 2014 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 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. Também é possível proteger a chave de criptografia do banco de dados através do uso de um certificado protegido pela chave mestra do banco de dados mestre. Para obter mais informações sobre como proteger a chave de criptografia do banco de dados usando a chave de master de banco de dados, consulte TDE (Transparent Data Encryption). Para obter informações sobre como configurar a TDE quando SQL Server estiver em execução em uma VM do Azure, consulte Gerenciamento extensível de chaves usando Key Vault do Azure (SQL Server).

Neste tópico

Antes de começar

Limitações e Restriçõ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. É necessário que esse usuário possa ser autenticado pelo módulo EKM.

  • Ao iniciar, o Mecanismo de Banco de Dados deve abrir o banco de dados. Para fazer isso, você deverá criar uma credencial que será autenticada pelo EKM, que adicioná-la ao logon baseado em uma chave assimétrica. Os usuários não podem fazer logon usando esse logon, mas o Mecanismo de Banco de Dados poderá se autenticar com o dispositivo EKM.

  • Se a chave assimétrica armazenada no módulo EKM for perdida, não será possível abrir o banco de dados no SQL Server. Se o provedor de EKM permitir o backup da chave assimétrica, você deverá criar o backup e armazená-lo em um local seguro.

  • As opções e os parâmetros exigidos por seu provedor de EKM podem diferir do que é fornecido no exemplo de código abaixo. Para obter mais informações, consulte seu provedor de EKM.

Segurança

Permissões

Este tópico usa as seguintes permissões:

  • Para alterar uma opção de configuração e executar a instrução RECONFIGURE, você deve ter a permissão em nível de servidor ALTER SETTINGS. A permissão ALTER SETTINGS é implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin .

  • Requer a permissão ALTER ANY CREDENTIAL.

  • Requer a permissão ALTER ANY LOGIN.

  • Requer a permissão CREATE ASYMMETRIC KEY.

  • Requer a permissão CONTROL no banco de dados para criptografá-lo.

Usando o Transact-SQL

Para habilitar a TDE usando EKM

  1. Copie os arquivos fornecidos pelo provedor de EKM em um local apropriado no computador com o SQL Server . Neste exemplo, usamos a pasta C:\EKM .

  2. Instale os certificados no computador, como requerido pelo provedor de EKM.

    Observação

    SQL Server não fornece um provedor de EKM. Cada provedor de EKM pode ter procedimentos diferentes para instalar, configurar e autorizar os usuários. Consulte a documentação do provedor de EKM para completar esta etapa.

  3. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  4. Na barra Padrão, clique em Nova Consulta.

  5. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.

    -- Enable advanced options.  
    sp_configure 'show advanced options', 1 ;  
    GO  
    RECONFIGURE ;  
    GO  
    -- Enable EKM provider  
    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 = 'q*gtev$0u#D1v'   
    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 = 'jeksi84&sLksi01@s'   
    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 AdventureWorks2012 ;  
    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 AdventureWorks2012   
    SET ENCRYPTION ON ;  
    GO  
    

Para saber mais, consulte o seguinte: