Habilitar a TDE usando EKM

Este tópico descreve como habilitar TDE (criptografia de dados transparente) no SQL Server 2012 para proteger uma chave de criptografia de banco de dados usando uma chave assimétrica armazenada em um módulo EKM (gerenciamento de chave extensível) com Transact-SQL.

Ela 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 mestra de banco de dados, consulte Criptografia de Dados Transparente (TDE).

Neste tópico

  • Antes de começar:

    Limitações e restrições

    Segurança

  • Para habilitar TDE usando EKM, usando Transact-SQL

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 precisa 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 efetuar logon com esse logon, mas o Mecanismo de Banco de Dados poderá se autenticar com o dispositivo de 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 de 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.

Ícone de seta usado com o link Voltar ao Início[Top]

Usando 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çãoObservação

    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 system administrator credential to a high privileged user such as your own domain login in the format  [DOMAIN\login].
    ALTER LOGIN UCBERKELEY\shcooper
    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 obter mais informações, consulte o seguinte:

Ícone de seta usado com o link Voltar ao Início[Top]

Consulte também

Conceitos

Gerenciamento extensível de chaves usando o Cofre da Chave do Azure (SQL Server)